Changeset c394de8 for global.c


Ignore:
Timestamp:
Sep 18, 2010, 5:07:40 PM (11 years ago)
Author:
David Benjamin <davidben@mit.edu>
Branches:
master, release-1.7, release-1.8, release-1.9
Children:
fc5eef4
Parents:
9190285
git-author:
David Benjamin <davidben@mit.edu> (08/14/10 01:15:47)
git-committer:
David Benjamin <davidben@mit.edu> (09/18/10 17:07:40)
Message:
Use ref-counting to make editwin ownership saner

When creating an editwin, one creates an editcontext which takes a
reference to the editwin. Likewise, the pointer in owl_global holds
reference. The reference counting manages their ownership claims. In
addition, owl_global_set_typwin_inactive now does release a reference.

Instead, the callback-calling commands take a reference and release it
later. We may wish to further improve that so that the contexts are also
ref-counted such that, when their commands are running, they will not be
deallocated, even if popped. That will avoid the callback dance.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • global.c

    r08263a8 rc394de8  
    285285owl_editwin *owl_global_current_typwin(const owl_global *g) {
    286286  owl_context *ctx = owl_global_get_context(g);
    287   /* Get the current editwin from the context. */
    288   if (ctx && owl_context_matches(ctx, OWL_CTX_TYPWIN)) {
    289     return owl_context_get_data(ctx);
    290   }
    291   return NULL;
     287  return owl_editcontext_get_editwin(ctx);
    292288}
    293289
     
    347343  owl_window_dirty(g->mainpanel.typwin);
    348344
     345  owl_editwin_unref(g->tw);
    349346  g->tw = NULL;
    350347}
Note: See TracChangeset for help on using the changeset viewer.