XEmacs 21.2.20 "Yoko".
[chise/xemacs-chise.git.1] / src / lstream.c
index 16bbfe5..d7c4f70 100644 (file)
@@ -134,10 +134,10 @@ void Lstream_rewind (Lstream *stream)
 #define MAX_READ_SIZE 512
 
 static Lisp_Object
-mark_lstream (Lisp_Object obj, void (*markobj) (Lisp_Object))
+mark_lstream (Lisp_Object obj)
 {
   Lstream *lstr = XLSTREAM (obj);
-  return lstr->imp->marker ? (lstr->imp->marker) (obj, markobj) : Qnil;
+  return lstr->imp->marker ? (lstr->imp->marker) (obj) : Qnil;
 }
 
 static void
@@ -146,8 +146,8 @@ print_lstream (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag)
   Lstream *lstr = XLSTREAM (obj);
   char buf[200];
 
-  sprintf (buf, "#<INTERNAL EMACS BUG (%s lstream) 0x%p>",
-          lstr->imp->name, lstr);
+  sprintf (buf, "#<INTERNAL OBJECT (XEmacs bug?) (%s lstream) 0x%lx>",
+          lstr->imp->name, (long) lstr);
   write_c_string (buf, printcharfun);
 }
 
@@ -188,7 +188,7 @@ sizeof_lstream (CONST void *header)
 
 DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION ("stream", lstream,
                                        mark_lstream, print_lstream,
-                                       finalize_lstream, 0, 0,
+                                       finalize_lstream, 0, 0, 0,
                                        sizeof_lstream, Lstream);
 \f
 void
@@ -232,7 +232,7 @@ Lstream_new (CONST Lstream_implementation *imp, CONST char *mode)
       lstream_types[lstream_type_count] = imp;
       Vlstream_free_list[lstream_type_count] =
        make_lcrecord_list (sizeof (*p) + imp->size - 1,
-                           lrecord_lstream);
+                           &lrecord_lstream);
       lstream_type_count++;
     }
 
@@ -1214,7 +1214,7 @@ lisp_string_rewinder (Lstream *stream)
 }
 
 static Lisp_Object
-lisp_string_marker (Lisp_Object stream, void (*markobj) (Lisp_Object))
+lisp_string_marker (Lisp_Object stream)
 {
   struct lisp_string_stream *str = LISP_STRING_STREAM_DATA (XLSTREAM (stream));
   return str->obj;
@@ -1612,13 +1612,13 @@ lisp_buffer_rewinder (Lstream *stream)
 }
 
 static Lisp_Object
-lisp_buffer_marker (Lisp_Object stream, void (*markobj) (Lisp_Object))
+lisp_buffer_marker (Lisp_Object stream)
 {
   struct lisp_buffer_stream *str =
     LISP_BUFFER_STREAM_DATA (XLSTREAM (stream));
 
-  (markobj) (str->start);
-  (markobj) (str->end);
+  mark_object (str->start);
+  mark_object (str->end);
   return str->buffer;
 }
 
@@ -1673,13 +1673,19 @@ lstream_type_create (void)
 }
 
 void
-vars_of_lstream (void)
+reinit_vars_of_lstream (void)
 {
   int i;
 
   for (i = 0; i < countof (Vlstream_free_list); i++)
     {
       Vlstream_free_list[i] = Qnil;
-      staticpro (&Vlstream_free_list[i]);
+      staticpro_nodump (&Vlstream_free_list[i]);
     }
 }
+
+void
+vars_of_lstream (void)
+{
+  reinit_vars_of_lstream ();
+}