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 }