Mercurial > hg > xemacs-beta
comparison src/device-gtk.c @ 3092:141c2920ea48
[xemacs-hg @ 2005-11-25 01:41:31 by crestani]
Incremental Garbage Collector
author | crestani |
---|---|
date | Fri, 25 Nov 2005 01:42:08 +0000 |
parents | a25c824ed558 |
children | 229bd619740a |
comparison
equal
deleted
inserted
replaced
3091:c22d8984148c | 3092:141c2920ea48 |
---|---|
73 { XD_LISP_OBJECT, offsetof (struct gtk_device, x_keysym_map_hashtable) }, | 73 { XD_LISP_OBJECT, offsetof (struct gtk_device, x_keysym_map_hashtable) }, |
74 { XD_LISP_OBJECT, offsetof (struct gtk_device, WM_COMMAND_frame) }, | 74 { XD_LISP_OBJECT, offsetof (struct gtk_device, WM_COMMAND_frame) }, |
75 { XD_END } | 75 { XD_END } |
76 }; | 76 }; |
77 | 77 |
78 #ifdef NEW_GC | |
79 DEFINE_LRECORD_IMPLEMENTATION ("gtk-device", gtk_device, | |
80 1, /*dumpable-flag*/ | |
81 0, 0, 0, 0, 0, | |
82 gtk_device_data_description_1, | |
83 Lisp_Gtk_Device); | |
84 #else /* not NEW_GC */ | |
78 extern const struct sized_memory_description gtk_device_data_description; | 85 extern const struct sized_memory_description gtk_device_data_description; |
79 | 86 |
80 const struct sized_memory_description gtk_device_data_description = { | 87 const struct sized_memory_description gtk_device_data_description = { |
81 sizeof (struct gtk_device), gtk_device_data_description_1 | 88 sizeof (struct gtk_device), gtk_device_data_description_1 |
82 }; | 89 }; |
90 #endif /* not NEW_GC */ | |
83 | 91 |
84 | 92 |
85 /************************************************************************/ | 93 /************************************************************************/ |
86 /* helper functions */ | 94 /* helper functions */ |
87 /************************************************************************/ | 95 /************************************************************************/ |
106 #define convert_font(f) __get_gtk_font_truename (f, 0) | 114 #define convert_font(f) __get_gtk_font_truename (f, 0) |
107 | 115 |
108 static void | 116 static void |
109 allocate_gtk_device_struct (struct device *d) | 117 allocate_gtk_device_struct (struct device *d) |
110 { | 118 { |
119 #ifdef NEW_GC | |
120 d->device_data = alloc_lrecord_type (struct gtk_device, &lrecord_gtk_device); | |
121 #else /* not NEW_GC */ | |
111 d->device_data = xnew_and_zero (struct gtk_device); | 122 d->device_data = xnew_and_zero (struct gtk_device); |
123 #endif /* not NEW_GC */ | |
112 DEVICE_GTK_DATA (d)->x_keysym_map_hashtable = Qnil; | 124 DEVICE_GTK_DATA (d)->x_keysym_map_hashtable = Qnil; |
113 } | 125 } |
114 | 126 |
115 static void | 127 static void |
116 gtk_init_device_class (struct device *d) | 128 gtk_init_device_class (struct device *d) |
348 /************************************************************************/ | 360 /************************************************************************/ |
349 | 361 |
350 static void | 362 static void |
351 free_gtk_device_struct (struct device *d) | 363 free_gtk_device_struct (struct device *d) |
352 { | 364 { |
365 #ifdef NEW_GC | |
366 mc_free (d->device_data); | |
367 #else /* not NEW_GC */ | |
353 xfree (d->device_data, void *); | 368 xfree (d->device_data, void *); |
369 #endif /* not NEW_GC */ | |
354 } | 370 } |
355 | 371 |
356 static void | 372 static void |
357 gtk_delete_device (struct device *d) | 373 gtk_delete_device (struct device *d) |
358 { | 374 { |
679 /************************************************************************/ | 695 /************************************************************************/ |
680 | 696 |
681 void | 697 void |
682 syms_of_device_gtk (void) | 698 syms_of_device_gtk (void) |
683 { | 699 { |
700 #ifdef NEW_GC | |
701 INIT_LRECORD_IMPLEMENTATION (gtk_device); | |
702 #endif /* NEW_GC */ | |
703 | |
684 DEFSUBR (Fgtk_keysym_on_keyboard_p); | 704 DEFSUBR (Fgtk_keysym_on_keyboard_p); |
685 DEFSUBR (Fgtk_display_visual_class); | 705 DEFSUBR (Fgtk_display_visual_class); |
686 DEFSUBR (Fgtk_display_visual_depth); | 706 DEFSUBR (Fgtk_display_visual_depth); |
687 DEFSUBR (Fgtk_style_info); | 707 DEFSUBR (Fgtk_style_info); |
688 DEFSUBR (Fgtk_grab_pointer); | 708 DEFSUBR (Fgtk_grab_pointer); |