i still think the correct solution is just to postpone the calls to
DestroyWindow until after the finalize method.
Index: src/event-msw.c
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/event-msw.c,v
retrieving revision 1.38.2.54
diff -u -r1.38.2.54 event-msw.c
--- src/event-msw.c 2000/07/21 10:16:02 1.38.2.54
+++ src/event-msw.c 2000/07/31 15:58:47
@@ -2023,6 +2023,11 @@
struct frame *frame;
struct mswindows_frame* msframe;
+ /* Not perfect but avoids crashes. There is potential for wierd
+ behaviour here. */
+ if (gc_in_progress)
+ goto defproc;
+
assert (!GetWindowLong (hwnd, GWL_USERDATA));
switch (message_)
{
Andy Piper wrote:
This should resume normal service. I have also fixed the elhash stuff.
andy
2000-07-31 Andy Piper <andy(a)xemacs.org>
* buffer.c (Frecord_buffer): make absolutely sure that redisplay
will acknowledge the change.
* glyphs.h: declare tab_control_order_only_changed.
* glyphs-x.c (x_tab_control_redisplay): use
tab_control_order_only_changed.
* glyphs-widget.c (tab_control_order_only_changed): new function.
* glyphs-msw.c (mswindows_tab_control_redisplay): use
tab_control_order_only_changed.
* gui.c (gui_item_equal_sans_selected): new function.
(gui_item_equal): use it.
* glyphs-msw.c (mswindows_combo_box_instantiate): deprecate
:properties in favor of :items..
* glyphs-widget.c (check_valid_item_list): rename from
check_valid_item_list_1.
(check_valid_item_list_1): renamed.
(combo_box_validate): deprecate :properties in favor of :items.
(widget_instantiate): ditto.
(tab_control_update): ditto.
(image_instantiator_combo_box): ditto.
(image_instantiator_tree_view): ditto.
(image_instantiator_tab_control): ditto.
(layout_post_instantiate): remove dead code.
* print.c (debug_print_no_newline): only write to debugger if in
WIN32_NATIVE.
* elhash.c (Fmake_hash_table): update doc string.
* event-msw.c (mswindows_wnd_proc): don't allow processing of
messages whilst in GC. This at least stops XEmacs crashing but has
the potential for wierd behaviour.
2000-07-31 Andy Piper <andy(a)xemacs.org>
* gutter-items.el (update-tab-in-gutter): deprecate :properties.
2000-07-27 Andy Piper <andy(a)xemacs.org>
* lispref/hash-tables.texi: add new hash table type.
--------------------------------------------------------------------------------
Name: tabfix.patch
tabfix.patch Type: Plain Text (text/plain)
Encoding: quoted-printable
--------------------------------------------------------------------------------
--------------------------------------------------------------
Dr Andy Piper
Principal Consultant, BEA Systems Ltd
--
Ben
In order to save my hands, I am cutting back on my mail. I also write
as succinctly as possible -- please don't be offended. If you send me
mail, you _will_ get a response, but please be patient, especially for
XEmacs-related mail. If you need an immediate response and it is not
apparent in your message, please say so. Thanks for your understanding.
See also
http://www.666.com/ben/chronic-pain/