X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=scope.h;h=2bccd63d590f13977685469a65e13242cdb1d44e;hb=b3ac6de7f0c7a63b73f1cf3ea9e371470f7d1cb0;hp=cc349f0f7c22957f73a2677ea1db343a5395ab0d;hpb=dde527fc6256d3b4a78a8a6187a9b8048cc76da5;p=p5sagit%2Fp5-mst-13.2.git diff --git a/scope.h b/scope.h index cc349f0..2bccd63 100644 --- a/scope.h +++ b/scope.h @@ -25,6 +25,7 @@ #define SAVEt_AELEM 24 #define SAVEt_HELEM 25 #define SAVEt_OP 26 +#define SAVEt_NOHINTS 27 #define SSCHECK(need) if (savestack_ix + need > savestack_max) savestack_grow() #define SSPUSHINT(i) (savestack[savestack_ix++].any_i32 = (I32)(i)) @@ -94,7 +95,14 @@ SSPUSHINT(SAVEt_STACK_POS); \ } STMT_END #define SAVEOP() save_op() - +#define SAVEHINTS() STMT_START { \ + if (hints & HINT_LOCALIZE_HH) \ + save_hints(); \ + else { \ + SSPUSHINT(hints); \ + SSPUSHINT(SAVEt_NOHINTS); \ + } \ + } STMT_END /* A jmpenv packages the state required to perform a proper non-local jump. * Note that there is a start_env initialized when perl starts, and top_env * points to this initially, so top_env should always be non-null.