diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2000-12-04 16:42:17 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2000-12-04 16:42:17 +0000 |
commit | 6bfc225dd053d6d16a741d24c9f3dd2d90b0a1ae (patch) | |
tree | bb6caf500fb0b1ad70eaede748f1d7e0ace5507c | |
parent | 3c1071f27f81b6dfd8d73d825ae7de3c747da907 (diff) | |
download | perl-6bfc225dd053d6d16a741d24c9f3dd2d90b0a1ae.tar.gz |
Retract #7977, still too volatile (the euphemism of the day
for unfinished and buggy :-)
p4raw-id: //depot/perl@7978
-rw-r--r-- | doop.c | 5 | ||||
-rw-r--r-- | hv.c | 17 | ||||
-rw-r--r-- | pp.c | 2 | ||||
-rw-r--r-- | sv.h | 2 |
4 files changed, 2 insertions, 24 deletions
@@ -1177,11 +1177,8 @@ Perl_do_kv(pTHX) PUTBACK; /* hv_iternext and hv_iterval might clobber stack_sp */ while ((entry = hv_iternext(keys))) { SPAGAIN; - if (dokeys) { + if (dokeys) XPUSHs(hv_iterkeysv(entry)); /* won't clobber stack_sp */ - if (SvUTF8((SV*)keys)) - SvUTF8_on(TOPs); /* Yuck */ - } if (dovalues) { PUTBACK; tmpstr = realhv ? @@ -245,9 +245,6 @@ Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, register U32 hash) if (!hv) return 0; - if (SvUTF8((SV*)hv) && !SvUTF8(keysv)) - sv_utf8_upgrade(keysv); - if (SvRMAGICAL(hv)) { if (mg_find((SV*)hv,'P')) { dTHR; @@ -466,20 +463,6 @@ Perl_hv_store_ent(pTHX_ HV *hv, SV *keysv, SV *val, register U32 hash) return 0; xhv = (XPVHV*)SvANY(hv); - - if (SvUTF8((SV*)hv) && !SvUTF8(keysv)) - sv_utf8_upgrade(keysv); - else if (SvUTF8(keysv) && !SvUTF8((SV*)hv)) { /* Upgrade hash */ - SvUTF8_on((SV*)hv); - /* XXX Need to save iterator to prevent weird things during "each" */ - (void)hv_iterinit(hv); - while (entry = hv_iternext(hv)) { - if (HeKLEN(entry) != HEf_SVKEY) /* Upgrade to SV key */ - HeSVKEY_set(entry, newSVpvn(HeKEY(entry), HeKLEN(entry))); - sv_utf8_upgrade(HeKEY_sv(entry)); - } - } - if (SvMAGICAL(hv)) { dTHR; bool needs_copy; @@ -2693,8 +2693,6 @@ PP(pp_each) EXTEND(SP, 2); if (entry) { PUSHs(hv_iterkeysv(entry)); /* won't clobber stack_sp */ - if (SvUTF8((SV*)hash)) - SvUTF8_on(TOPs); if (gimme == G_ARRAY) { SV *val; PUTBACK; @@ -227,7 +227,7 @@ perform the upgrade if necessary. See C<svtype>. #define SVrepl_EVAL 0x40000000 /* Replacement part of s///e */ -#define SVphv_SHAREKEYS 0x80000000 /* keys live on shared string table */ +#define SVphv_SHAREKEYS 0x20000000 /* keys live on shared string table */ #define SVphv_LAZYDEL 0x40000000 /* entry in xhv_eiter must be deleted */ #define SVprv_WEAKREF 0x80000000 /* Weak reference */ |