File tree 3 files changed +13
-0
lines changed
3 files changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -295,6 +295,12 @@ bool St_EqualP(StObject lhs, StObject rhs)
295
295
return St_VectorEqualP (lhs , rhs );
296
296
}
297
297
298
+ if (ST_EXTERNALP (lhs ) && ST_EXTERNALP (rhs ) &&
299
+ ST_EXTERNAL_TYPE_INFO (lhs ) == ST_EXTERNAL_TYPE_INFO (rhs ))
300
+ {
301
+ return ST_EXTERNAL_TYPE_INFO (lhs )-> equalp (lhs , rhs );
302
+ }
303
+
298
304
return St_EqvP (lhs , rhs );
299
305
}
300
306
Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ struct StExternalObjectHeader
54
54
};
55
55
typedef struct StExternalObjectHeader * StExternalObject ;
56
56
#define ST_EXTERNAL_OBJECT (x ) ((StExternalObject)(x))
57
+ #define ST_EXTERNAL_TYPE_INFO (x ) (ST_EXTERNAL_OBJECT(x)->type_info)
57
58
58
59
struct StCellRec
59
60
{
Original file line number Diff line number Diff line change @@ -145,6 +145,12 @@ static void print(StObject obj, StObject port)
145
145
break ;
146
146
}
147
147
148
+ case TEXTERNAL : {
149
+ ST_EXTERNAL_TYPE_INFO (obj )-> print (obj , port );
150
+
151
+ break ;
152
+ }
153
+
148
154
default :
149
155
St_Error ("unknown type %d" , obj -> type );
150
156
}
You can’t perform that action at this time.
0 commit comments