(Fminibuffer_complete): Add third arg to Fset_window_start.
[bpt/emacs.git] / src / alloc.c
index 2ced271..761403a 100644 (file)
@@ -982,8 +982,9 @@ make_event_array (nargs, args)
   /* Since the loop exited, we know that all the things in it are
      characters, so we can make a string.  */
   {
-    Lisp_Object result = Fmake_string (nargs, make_number (0));
+    Lisp_Object result;
     
+    result = Fmake_string (nargs, make_number (0));
     for (i = 0; i < nargs; i++)
       {
        XSTRING (result)->data[i] = XINT (args[i]);
@@ -1190,28 +1191,6 @@ struct backtrace
               /* if nargs is UNEVALLED, args points to slot holding list of unevalled args */
     char evalargs;
   };
-
-/* Two flags that are set during GC in the `size' component
-   of a string or vector.  On some machines, these flags
-   are defined by the m- file to be different bits.  */
-
-/* On vector, means it has been marked.
-   On string size field or a reference to a string,
-   means not the last reference in the chain.  */
-
-#ifndef ARRAY_MARK_FLAG
-#define ARRAY_MARK_FLAG ((MARKBIT >> 1) & ~MARKBIT)
-#endif /* no ARRAY_MARK_FLAG */
-
-/* Any slot that is a Lisp_Object can point to a string
-   and thus can be put on a string's reference-chain
-   and thus may need to have its ARRAY_MARK_FLAG set.
-   This includes the slots whose markbits are used to mark
-   the containing objects.  */
-
-#if ARRAY_MARK_FLAG == MARKBIT
-you lose
-#endif
 \f
 /* Garbage collection!  */
 
@@ -1573,7 +1552,9 @@ mark_object (objptr)
            if (i != COMPILED_CONSTANTS)
              mark_object (&ptr1->contents[i]);
          }
-       objptr = &ptr1->contents[COMPILED_CONSTANTS];
+       /* This cast should be unnecessary, but some Mips compiler complains
+          (MIPS-ABI + SysVR4, DC/OSx, etc).  */
+       objptr = (Lisp_Object *) &ptr1->contents[COMPILED_CONSTANTS];
        goto loop;
       }
 
@@ -1597,6 +1578,7 @@ mark_object (objptr)
        mark_object (&ptr->scroll_bars);
        mark_object (&ptr->condemned_scroll_bars);
        mark_object (&ptr->menu_bar_items);
+       mark_object (&ptr->menu_bar_vector);
        mark_object (&ptr->face_alist);
       }
       break;