Further restrict application of records: the type that appears in the
authorChris Hanson <org/chris-hanson/cph>
Wed, 9 Dec 1992 23:38:37 +0000 (23:38 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 9 Dec 1992 23:38:37 +0000 (23:38 +0000)
record's zeroth slot must be a record whose length field is marked
with TC_TRUE.  This allows a record to have another record be its type
without having to reserve the application-procedure slot in all
records.

v7/src/microcode/interp.c
v8/src/microcode/interp.c

index 6ca5800585b67ca2033851ed095d2e85ce58b1bd..eae8a3dd4a761dc0793c0e71464b64978435ffd4 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: interp.c,v 9.71 1992/12/02 18:34:52 cph Exp $
+$Id: interp.c,v 9.72 1992/12/09 23:38:37 cph Exp $
 
 Copyright (c) 1988-1992 Massachusetts Institute of Technology
 
@@ -1531,6 +1531,8 @@ apply_dispatch:
          {
            SCHEME_OBJECT record_type = (VECTOR_REF (Function, 0));
            if ((RECORD_P (record_type))
+               && ((OBJECT_TYPE (FAST_MEMORY_REF (record_type, 0)))
+                   == TC_TRUE)
                && ((VECTOR_LENGTH (record_type)) >= 2)
                && ((VECTOR_REF (record_type, 1)) != SHARP_F)
                && ((VECTOR_REF (record_type, 1)) != Function))
index 6ca5800585b67ca2033851ed095d2e85ce58b1bd..eae8a3dd4a761dc0793c0e71464b64978435ffd4 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: interp.c,v 9.71 1992/12/02 18:34:52 cph Exp $
+$Id: interp.c,v 9.72 1992/12/09 23:38:37 cph Exp $
 
 Copyright (c) 1988-1992 Massachusetts Institute of Technology
 
@@ -1531,6 +1531,8 @@ apply_dispatch:
          {
            SCHEME_OBJECT record_type = (VECTOR_REF (Function, 0));
            if ((RECORD_P (record_type))
+               && ((OBJECT_TYPE (FAST_MEMORY_REF (record_type, 0)))
+                   == TC_TRUE)
                && ((VECTOR_LENGTH (record_type)) >= 2)
                && ((VECTOR_REF (record_type, 1)) != SHARP_F)
                && ((VECTOR_REF (record_type, 1)) != Function))