Mercurial > hg > xemacs-beta
comparison src/marker.c @ 5118:e0db3c197671 ben-lisp-object
merge up to latest default branch, doesn't compile yet
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sat, 26 Dec 2009 21:18:49 -0600 |
parents | 3742ea8250b5 d674024a8674 |
children | 623d57b7fbe8 |
comparison
equal
deleted
inserted
replaced
5117:3742ea8250b5 | 5118:e0db3c197671 |
---|---|
102 { XD_LISP_OBJECT, offsetof (Lisp_Marker, prev), 0, { 0 }, XD_FLAG_NO_KKCC }, | 102 { XD_LISP_OBJECT, offsetof (Lisp_Marker, prev), 0, { 0 }, XD_FLAG_NO_KKCC }, |
103 { XD_LISP_OBJECT, offsetof (Lisp_Marker, buffer) }, | 103 { XD_LISP_OBJECT, offsetof (Lisp_Marker, buffer) }, |
104 { XD_END } | 104 { XD_END } |
105 }; | 105 }; |
106 | 106 |
107 #ifdef MC_ALLOC | 107 #ifdef NEW_GC |
108 static void | 108 static void |
109 finalize_marker (void *header, int for_disksave) | 109 finalize_marker (void *header, int for_disksave) |
110 { | 110 { |
111 if (!for_disksave) | 111 if (!for_disksave) |
112 { | 112 { |
113 Lisp_Object tem = wrap_marker (header); | 113 Lisp_Object tem = wrap_marker (header); |
114 unchain_marker (tem); | 114 unchain_marker (tem); |
115 } | 115 } |
116 } | 116 } |
117 | 117 |
118 DEFINE_BASIC_LISP_OBJECT ("marker", marker, | 118 DEFINE_DUMPABLE_FROB_BLOCK_LISP_OBJECT ("marker", marker, |
119 mark_marker, print_marker, | 119 mark_marker, print_marker, |
120 finalize_marker, | 120 finalize_marker, |
121 marker_equal, marker_hash, | 121 marker_equal, marker_hash, |
122 marker_description, Lisp_Marker); | 122 marker_description, Lisp_Marker); |
123 #else /* not MC_ALLOC */ | 123 #else /* not NEW_GC */ |
124 DEFINE_BASIC_LISP_OBJECT ("marker", marker, | 124 DEFINE_DUMPABLE_FROB_BLOCK_LISP_OBJECT ("marker", marker, |
125 mark_marker, print_marker, 0, | 125 mark_marker, print_marker, 0, |
126 marker_equal, marker_hash, | 126 marker_equal, marker_hash, |
127 marker_description, Lisp_Marker); | 127 marker_description, Lisp_Marker); |
128 #endif /* not MC_ALLOC */ | 128 #endif /* not NEW_GC */ |
129 | 129 |
130 /* Operations on markers. */ | 130 /* Operations on markers. */ |
131 | 131 |
132 DEFUN ("marker-buffer", Fmarker_buffer, 1, 1, 0, /* | 132 DEFUN ("marker-buffer", Fmarker_buffer, 1, 1, 0, /* |
133 Return the buffer that MARKER points into, or nil if none. | 133 Return the buffer that MARKER points into, or nil if none. |
508 int overhead; | 508 int overhead; |
509 | 509 |
510 for (m = BUF_MARKERS (b); m; m = m->next) | 510 for (m = BUF_MARKERS (b); m; m = m->next) |
511 total += sizeof (Lisp_Marker); | 511 total += sizeof (Lisp_Marker); |
512 ovstats->was_requested += total; | 512 ovstats->was_requested += total; |
513 #ifdef MC_ALLOC | 513 #ifdef NEW_GC |
514 overhead = mc_alloced_storage_size (total, 0); | 514 overhead = mc_alloced_storage_size (total, 0); |
515 #else /* not MC_ALLOC */ | 515 #else /* not NEW_GC */ |
516 overhead = fixed_type_block_overhead (total); | 516 overhead = fixed_type_block_overhead (total); |
517 #endif /* not MC_ALLOC */ | 517 #endif /* not NEW_GC */ |
518 /* #### claiming this is all malloc overhead is not really right, | 518 /* #### claiming this is all malloc overhead is not really right, |
519 but it has to go somewhere. */ | 519 but it has to go somewhere. */ |
520 ovstats->malloc_overhead += overhead; | 520 ovstats->malloc_overhead += overhead; |
521 return total + overhead; | 521 return total + overhead; |
522 } | 522 } |