From: Guillermo J. Rozas <edu/mit/csail/zurich/gjr>
Date: Tue, 16 Nov 1993 02:25:15 +0000 (+0000)
Subject: Fix MANIFEST_CLOSURE_COUNT and FIRST_MANIFEST_CLOSURE_ENTRY.
X-Git-Tag: 20090517-FFI~7503
X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=7c6327954133979278acc87befc6b7b42ae4c769;p=mit-scheme.git

Fix MANIFEST_CLOSURE_COUNT and FIRST_MANIFEST_CLOSURE_ENTRY.
The default versions only work when
sizeof (unsigned long) = 2 * sizeof (format_word)
---

diff --git a/v7/src/microcode/cmpintmd/c.h b/v7/src/microcode/cmpintmd/c.h
index bf51fae66..502b0fe8a 100644
--- a/v7/src/microcode/cmpintmd/c.h
+++ b/v7/src/microcode/cmpintmd/c.h
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: c.h,v 1.4 1993/10/30 03:01:38 gjr Exp $
+$Id: c.h,v 1.5 1993/11/16 02:25:15 gjr Exp $
 
 Copyright (c) 1992-1993 Massachusetts Institute of Technology
 
@@ -74,6 +74,16 @@ extern int pc_zero_bits;
 {									\
   ((SCHEME_OBJECT *) (location))[1] = ((SCHEME_OBJECT) (input));	\
 } while (0)
+
+#define MANIFEST_CLOSURE_COUNT(scan)					\
+(((COMPILED_ENTRY_OFFSET_WORD (((SCHEME_OBJECT *) (scan)) + 1)) == 0)	\
+ ? (COMPILED_ENTRY_FORMAT_WORD (((SCHEME_OBJECT *) (scan)) + 1))	\
+ : 1)
+
+#define FIRST_MANIFEST_CLOSURE_ENTRY(scan)				\
+(((COMPILED_ENTRY_OFFSET_WORD (((SCHEME_OBJECT *) (scan)) + 1)) == 0)	\
+ ? (((SCHEME_OBJECT *) (scan)) + 2)					\
+ : (((SCHEME_OBJECT *) (scan)) + 1))
 
 /* Trampolines are implemented as tiny compiled code blocks that
    invoke the constant C procedure indexed by the number 0.