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);