At 05:08 PM 1/20/02 +0100, Adrian Aichner wrote:
>>>>> "Andy" == Andy Piper
<andyp(a)bea.com> writes:
Andy> I think we should do what Ben says and try commenting out
Andy> the call to update_window_scrollbars. The alternative would
Something like this?
Index: window.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/window.c,v
retrieving revision 1.52.2.1.2.3
diff -u -u -r1.52.2.1.2.3 window.c
--- window.c 2001/12/01 05:54:21 1.52.2.1.2.3
+++ window.c 2002/01/20 15:52:49
@@ -386,9 +386,6 @@
mir->current_display_lines = Dynarr_new (display_line);
mir->desired_display_lines = Dynarr_new (display_line);
-#ifdef HAVE_SCROLLBARS
- update_window_scrollbars (XWINDOW (win), mir, 0, 0);
-#endif
mir->buffer = NULL;
}
No I mean in mark_redisplay(). We should update the window mirrors before
going into GC.
Andy> be to do this before we go into GC. We could do this by
Andy> having a run_pre_gc_actions which does the same as
Andy> run_post_gc_actions and then does the update there. I don't
I wonder why the implementer of run_post_gc_actions has not
implemented run_pre_gc_actions as well. Could you think of a reason
why this would not be a good idea?
The reason Ben did not do this is because run_post_gc_actions is supposed
to be used for cleaning up things that cannot be deleted in GC (e.g. GUI
windows). Before GC is run this condition does not exist. However, there is
no reason I can think of why this isn't a good idea.
What would we set up for register_pre_gc_action?
Just a function doing
#ifdef HAVE_SCROLLBARS
update_window_scrollbars (XWINDOW (win), mir, 0, 0);
#endif
perhaps?
Right, but looping over all frames as per mark_redisplay()
andy