From f826a8864a4ec7bfffac0f67d45f8ce0085e9d23 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Fri, 15 Jan 2010 22:33:49 +0100 Subject: [PATCH] fix (class-of #u32()) * libguile/goops.c (scm_class_of, create_standard_classes): Return or for bytevectors, as appropriate. --- libguile/goops.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libguile/goops.c b/libguile/goops.c index 87ae99336..33293fea4 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -166,6 +166,8 @@ static SCM class_frame; static SCM class_objcode; static SCM class_vm; static SCM class_vm_cont; +static SCM class_bytevector; +static SCM class_uvec; /* Port classes. Allocate 3 times the maximum number of port types so that input ports, output ports, and in/out ports can be stored at different @@ -235,6 +237,11 @@ SCM_DEFINE (scm_class_of, "class-of", 1, 0, 0, return class_vm; case scm_tc7_vm_cont: return class_vm_cont; + case scm_tc7_bytevector: + if (SCM_BYTEVECTOR_ELEMENT_TYPE (x) == SCM_ARRAY_ELEMENT_TYPE_VU8) + return class_bytevector; + else + return class_uvec; case scm_tc7_string: return scm_class_string; case scm_tc7_number: @@ -2422,6 +2429,10 @@ create_standard_classes (void) scm_class_class, scm_class_top, SCM_EOL); make_stdcls (&class_vm_cont, "", scm_class_class, scm_class_top, SCM_EOL); + make_stdcls (&class_bytevector, "", + scm_class_class, scm_class_top, SCM_EOL); + make_stdcls (&class_uvec, "", + scm_class_class, class_bytevector, SCM_EOL); make_stdcls (&scm_class_number, "", scm_class_class, scm_class_top, SCM_EOL); make_stdcls (&scm_class_complex, "",