Skip to content
Browse files

[parrot #869] Check also for proxied lexinfo with threaded parrots

Tadzik came up with an abnormal testcase, which crashed in nqp on a threaded parrot.
See [parrot #869].
Parrot_NQPLexPad_set_pointer needs to check for enum_class_Proxy also.
Note this commit does not fix the problem, only the segfault.
I do not know which lexinfo name_map to get with enum_class_Proxy.
  • Loading branch information...
1 parent 4f52b8c commit a93915b9102bd4862cef89445c4a160a1ab4589a @rurban rurban committed Nov 21, 2012
Showing with 5 additions and 1 deletion.
  1. +5 −1 src/pmc/nqplexpad.pmc
View
6 src/pmc/nqplexpad.pmc
@@ -108,7 +108,11 @@ Return the LexInfo PMC, if any or a Null PMC.
PMC *info;
Hash *hash;
GET_ATTR_lexinfo(INTERP, SELF, info);
- if (info->vtable->base_type != enum_class_LexInfo) {
+ if (info->vtable->base_type != enum_class_LexInfo
+#ifdef PARROT_HAS_THREADS
+ && info->vtable->base_type != enum_class_Proxy
+#endif
+ ) {
PMC *name_map;
GETATTR_NQPLexInfo_name_to_register_map(INTERP, info, name_map);
hash = (Hash *)VTABLE_get_pointer(INTERP, name_map);

0 comments on commit a93915b

Please sign in to comment.
Something went wrong with that request. Please try again.