This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl.h can include embed.h in the same location on all operating systems.
[perl5.git] / hv.c
diff --git a/hv.c b/hv.c
index b5ee308..27ce6a5 100644 (file)
--- a/hv.c
+++ b/hv.c
@@ -1897,8 +1897,7 @@ S_hv_auxinit(HV *hv) {
              + sizeof(struct xpvhv_aux), char);
     }
     HvARRAY(hv) = (HE**) array;
-    /* SvOOK_on(hv) attacks the IV flags.  */
-    SvFLAGS(hv) |= SVf_OOK;
+    SvOOK_on(hv);
     iter = HvAUX(hv);
 
     iter->xhv_riter = -1;      /* HvRITER(hv) = -1 */
@@ -2426,6 +2425,7 @@ Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags)
               or if we run through it and find only placeholders.  */
        }
     }
+    else iter->xhv_riter = -1;
 
     if (oldentry && HvLAZYDEL(hv)) {           /* was deleted earlier? */
        HvLAZYDEL_off(hv);
@@ -2644,7 +2644,7 @@ S_unshare_hek_or_pvn(pTHX_ const HEK *hek, const char *str, I32 len, U32 hash)
 
     if (!entry)
        Perl_ck_warner_d(aTHX_ packWARN(WARN_INTERNAL),
-                        "Attempt to free non-existent shared string '%s'%s"
+                        "Attempt to free nonexistent shared string '%s'%s"
                         pTHX__FORMAT,
                         hek ? HEK_KEY(hek) : str,
                         ((k_flags & HVhek_UTF8) ? " (utf8)" : "") pTHX__VALUE);
@@ -2734,7 +2734,7 @@ S_share_hek_flags(pTHX_ const char *str, I32 len, register U32 hash, int flags)
        /* We don't actually store a HE from the arena and a regular HEK.
           Instead we allocate one chunk of memory big enough for both,
           and put the HEK straight after the HE. This way we can find the
-          HEK directly from the HE.
+          HE directly from the HEK.
        */
 
        Newx(k, STRUCT_OFFSET(struct shared_he,