diff options
author | Nicholas Clark <nick@ccl4.org> | 2008-01-04 23:12:01 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2008-01-04 23:12:01 +0000 |
commit | 7a4bba223aa750dd886fe6a2fddef224e59c717f (patch) | |
tree | a62d2cfd06d6f0b3dcac09e795b2cb7a34fdb104 /embed.fnc | |
parent | 7f605079929e971ed43dc83cf99bc51154965c26 (diff) | |
download | perl-7a4bba223aa750dd886fe6a2fddef224e59c717f.tar.gz |
Re-implement the SvOOK() hack to store the offset as a BER encoded
number in the part of the PVX that is being released. (It will always
fit, as chopping off 1 byte gives just enough space for recording a
delta of up to 127). This allows SvOOK() to co-exist with SvIOK_on(),
which means all the calls to SvOOK_off() [with the possibility of a
call to sv_backoff()] in SvIOK_on() can be removed. This ought to make
a lot of straight line code a little bit simpler.
OOK()d scalars can now be SVt_PV, as the IVX isn't needed.
p4raw-id: //depot/perl@32836
Diffstat (limited to 'embed.fnc')
-rw-r--r-- | embed.fnc | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -881,6 +881,7 @@ Apd |void |sv_pos_b2u |NULLOK SV* sv|NN I32* offsetp Amdb |char* |sv_pvn_force |NN SV* sv|NULLOK STRLEN* lp Apd |char* |sv_pvutf8n_force|NN SV* sv|NULLOK STRLEN* lp Apd |char* |sv_pvbyten_force|NN SV* sv|NULLOK STRLEN* lp +Ap |UV |sv_read_offset |NN const SV *const sv Apd |char* |sv_recode_to_utf8 |NN SV* sv|NN SV *encoding Apd |bool |sv_cat_decode |NN SV* dsv|NN SV *encoding|NN SV *ssv|NN int *offset \ |NN char* tstr|int tlen |