* tag.c (scm_tag): Base tag on vtable pointer.
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Wed, 23 Jun 1999 11:19:25 +0000 (11:19 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Wed, 23 Jun 1999 11:19:25 +0000 (11:19 +0000)
libguile/tag.c

index 4e8ce4a..48e7322 100644 (file)
@@ -175,8 +175,7 @@ scm_tag (x)
        case scm_tcs_cons_gloc:
          /* must be a struct */
          {
-           int tag;
-           tag = SCM_STRUCT_VTABLE_DATA (x)[scm_struct_i_tag];
+           int tag = (int) SCM_STRUCT_VTABLE_DATA (x) >> 3;
            return SCM_MAKINUM (SCM_INUM (SCM_CDR (scm_utag_struct_base))
                                | (tag << 8));
          }