Quickier thread-specific data on OS/2
[p5sagit/p5-mst-13.2.git] / bytecode.h
index e28dd43..9f4f781 100644 (file)
@@ -64,7 +64,7 @@ typedef IV IV64;
        BGET_U32(hi);                                   \
        BGET_U32(lo);                                   \
        if (sizeof(IV) == 8)                            \
-           arg = (IV) (hi << (sizeof(IV)*4) | lo);     \
+           arg = ((IV)hi << (sizeof(IV)*4) | lo);      \
        else if (((I32)hi == -1 && (I32)lo < 0)         \
                 || ((I32)hi == 0 && (I32)lo >= 0)) {   \
            arg = (I32)lo;                              \
@@ -151,10 +151,13 @@ typedef IV IV64;
        o->op_type = arg;                       \
        if (arg == OP_MAPSTART)                 \
            arg = OP_GREPSTART;                 \
-       o->op_ppaddr = ppaddr[arg];             \
+       o->op_ppaddr = PL_ppaddr[arg];          \
     } STMT_END
 #define BSET_op_ppaddr(o, arg) croak("op_ppaddr not yet implemented")
-#define BSET_curpad(pad, arg) pad = AvARRAY(arg)
+#define BSET_curpad(pad, arg) STMT_START {     \
+       PL_comppad = (AV *)arg;                 \
+       pad = AvARRAY(arg);                     \
+    } STMT_END
 
 #define BSET_OBJ_STORE(obj, ix)                \
        (I32)ix > PL_bytecode_obj_list_fill ?   \