From 2faa7fb0d5d76e1a5bd11f0e136029f32030391e Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Wed, 9 Dec 1992 23:38:37 +0000 Subject: [PATCH] Further restrict application of records: the type that appears in the 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 | 4 +++- v8/src/microcode/interp.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/v7/src/microcode/interp.c b/v7/src/microcode/interp.c index 6ca580058..eae8a3dd4 100644 --- a/v7/src/microcode/interp.c +++ b/v7/src/microcode/interp.c @@ -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)) diff --git a/v8/src/microcode/interp.c b/v8/src/microcode/interp.c index 6ca580058..eae8a3dd4 100644 --- a/v8/src/microcode/interp.c +++ b/v8/src/microcode/interp.c @@ -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)) -- 2.25.1