#if defined(USE_ITHREADS)
HE *
-Perl_he_dup(pTHX_ HE *e, bool shared, clone_params* param)
+Perl_he_dup(pTHX_ HE *e, bool shared, CLONE_PARAMS* param)
{
HE *ret;
/* It's an ordinary hash, so copy it fast. AMS 20010804 */
int i, shared = !!HvSHAREKEYS(ohv);
HE **ents, **oents = (HE **)HvARRAY(ohv);
- New(0, (char *)ents, PERL_HV_ARRAY_ALLOC_BYTES(hv_max+1), char);
+ char *a;
+ New(0, a, PERL_HV_ARRAY_ALLOC_BYTES(hv_max+1), char);
+ ents = (HE**)a;
/* In each bucket... */
for (i = 0; i <= hv_max; i++) {
STRLEN len = HeKLEN_UTF8(oent);
ent = new_HE();
- HeVAL(ent) = SvREFCNT_inc(HeVAL(oent));
+ HeVAL(ent) = newSVsv(HeVAL(oent));
HeKEY_hek(ent) = shared ? share_hek(key, len, hash)
: save_hek(key, len, hash);
if (prev)