@@ -604,7 +604,7 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
604
604
return (void * ) entry ;
605
605
}
606
606
#ifdef ENV_IS_CASELESS
607
- else if (mg_find (( const SV * ) hv , PERL_MAGIC_env )) {
607
+ else if (hv_is_env ( hv )) {
608
608
U32 i ;
609
609
for (i = 0 ; i < klen ; ++ i )
610
610
if (isLOWER (key [i ])) {
@@ -669,7 +669,7 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
669
669
return SvTRUE_NN (svret ) ? (void * )hv : NULL ;
670
670
}
671
671
#ifdef ENV_IS_CASELESS
672
- else if (mg_find (( const SV * ) hv , PERL_MAGIC_env )) {
672
+ else if (hv_is_env ( hv )) {
673
673
/* XXX This code isn't UTF8 clean. */
674
674
char * const keysave = (char * const )key ;
675
675
/* Will need to free this, so set FREEKEY flag. */
@@ -714,7 +714,7 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
714
714
return NULL ;
715
715
}
716
716
#ifdef ENV_IS_CASELESS
717
- else if (mg_find (( const SV * ) hv , PERL_MAGIC_env )) {
717
+ else if (hv_is_env ( hv )) {
718
718
/* XXX This code isn't UTF8 clean. */
719
719
const char * keysave = key ;
720
720
/* Will need to free this, so set FREEKEY flag. */
@@ -737,8 +737,7 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
737
737
if (!HvARRAY (hv )) {
738
738
if ((action & (HV_FETCH_LVALUE | HV_FETCH_ISSTORE ))
739
739
#ifdef DYNAMIC_ENV_FETCH /* if it's an %ENV lookup, we may get it on the fly */
740
- || (SvRMAGICAL ((const SV * )hv )
741
- && mg_find ((const SV * )hv , PERL_MAGIC_env ))
740
+ || (hv_is_env (hv ))
742
741
#endif
743
742
) {
744
743
char * array ;
@@ -944,9 +943,7 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
944
943
945
944
not_found :
946
945
#ifdef DYNAMIC_ENV_FETCH /* %ENV lookup? If so, try to fetch the value now */
947
- if (!(action & HV_FETCH_ISSTORE )
948
- && SvRMAGICAL ((const SV * )hv )
949
- && mg_find ((const SV * )hv , PERL_MAGIC_env )) {
946
+ if (!(action & HV_FETCH_ISSTORE ) && hv_is_env (hv )) {
950
947
unsigned long len ;
951
948
const char * const env = PerlEnv_ENVgetenv_len (key ,& len );
952
949
if (env ) {
@@ -1196,7 +1193,7 @@ Perl_hv_pushkv(pTHX_ HV *hv, U32 flags)
1196
1193
HE * entry ;
1197
1194
bool tied = SvRMAGICAL (hv ) && (mg_find (MUTABLE_SV (hv ), PERL_MAGIC_tied )
1198
1195
#ifdef DYNAMIC_ENV_FETCH /* might not know number of keys yet */
1199
- || mg_find ( MUTABLE_SV ( hv ), PERL_MAGIC_env )
1196
+ || hv_is_env ( hv )
1200
1197
#endif
1201
1198
);
1202
1199
PERL_ARGS_ASSERT_HV_PUSHKV ;
@@ -1348,7 +1345,7 @@ S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
1348
1345
return NULL ; /* element cannot be deleted */
1349
1346
}
1350
1347
#ifdef ENV_IS_CASELESS
1351
- else if (mg_find (( const SV * ) hv , PERL_MAGIC_env )) {
1348
+ else if (hv_is_env ( hv )) {
1352
1349
/* XXX This code isn't UTF8 clean. */
1353
1350
keysv = newSVpvn_flags (key , klen , SVs_TEMP );
1354
1351
if (k_flags & HVhek_FREEKEY ) {
@@ -3063,8 +3060,7 @@ Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags)
3063
3060
}
3064
3061
}
3065
3062
#if defined(DYNAMIC_ENV_FETCH ) && defined(VMS ) /* set up %ENV for iteration */
3066
- if (!entry && SvRMAGICAL ((const SV * )hv )
3067
- && mg_find ((const SV * )hv , PERL_MAGIC_env )) {
3063
+ if (!entry && hv_is_env (hv )) {
3068
3064
prime_env_iter ();
3069
3065
}
3070
3066
#endif
0 commit comments