|const U8 op \
|const STRLEN extra_len \
|NN const char* const name
+Es |void |change_engine_size|NN RExC_state_t *pRExC_state|const Ptrdiff_t size
Es |regnode_offset|reganode|NN RExC_state_t *pRExC_state|U8 op \
|U32 arg
Es |regnode_offset|reg2Lanode|NN RExC_state_t *pRExC_state \
#define add_data S_add_data
#define add_multi_match(a,b,c) S_add_multi_match(aTHX_ a,b,c)
#define alloc_maybe_populate_EXACT(a,b,c,d,e,f) S_alloc_maybe_populate_EXACT(aTHX_ a,b,c,d,e,f)
+#define change_engine_size(a,b) S_change_engine_size(aTHX_ a,b)
#define cntrl_to_mnemonic S_cntrl_to_mnemonic
#define compute_EXACTish S_compute_EXACTish
#define construct_ahocorasick_from_trie(a,b,c) S_construct_ahocorasick_from_trie(aTHX_ a,b,c)
#define PERL_ARGS_ASSERT_ALLOC_MAYBE_POPULATE_EXACT \
assert(pRExC_state); assert(node); assert(flagp)
#endif
+STATIC void S_change_engine_size(pTHX_ RExC_state_t *pRExC_state, const Ptrdiff_t size);
+#define PERL_ARGS_ASSERT_CHANGE_ENGINE_SIZE \
+ assert(pRExC_state)
STATIC const char * S_cntrl_to_mnemonic(const U8 c)
__attribute__warn_unused_result__;
}
}
+STATIC void
+S_change_engine_size(pTHX_ RExC_state_t *pRExC_state, const Ptrdiff_t size)
+{
+ PERL_ARGS_ASSERT_CHANGE_ENGINE_SIZE;
+
+ RExC_size += size;
+}
+
STATIC regnode_offset
S_regnode_guts(pTHX_ RExC_state_t *pRExC_state, const U8 op, const STRLEN extra_size, const char* const name)
{
if (SIZE_ONLY) {
SIZE_ALIGN(RExC_size);
- RExC_size += 1 + extra_size;
+ change_engine_size(pRExC_state, (Ptrdiff_t) 1 + extra_size);
return(ret);
}
if (REGNODE_p(RExC_emit) >= RExC_emit_bound)