=item PAD_CLONE_VARS
X<PAD_CLONE_VARS>
-|CLONE_PARAMS* param
Clone the state variables associated with running and compiling pads.
- void PAD_CLONE_VARS(PerlInterpreter *proto_perl \)
+ void PAD_CLONE_VARS(PerlInterpreter *proto_perl, CLONE_PARAMS* param)
=for hackers
Found in file pad.h
=over 8
-=item is_gv_magical
-X<is_gv_magical>
+=item is_gv_magical_sv
+X<is_gv_magical_sv>
Returns C<TRUE> if given the name of a magical GV.
This assumption is met by all callers within the perl core, which all pass
pointers returned by SvPV.
- bool is_gv_magical(const char *name, STRLEN len, U32 flags)
-
-=for hackers
-Found in file gv.c
-
-=item is_gv_magical_sv
-X<is_gv_magical_sv>
-
-Returns C<TRUE> if given the name of a magical GV. Calls is_gv_magical.
-
- bool is_gv_magical_sv(SV *name, U32 flags)
+ bool is_gv_magical_sv(SV *const name_sv, U32 flags)
=for hackers
Found in file gv.c
this glob starter is only used by miniperl during the build process.
Moving it away shrinks pp_hot.c; shrinking pp_hot.c helps speed perl up.
- PerlIO* start_glob(SV* pattern, IO *io)
+ PerlIO* start_glob(SV *tmpglob, IO *io)
=for hackers
Found in file doio.c
=over 8
-=item magic_sethint
-X<magic_sethint>
+=item magic_clearhint
+X<magic_clearhint>
Triggered by a delete from %^H, records the key to
C<PL_compiling.cop_hints_hash>.
+ int magic_clearhint(SV* sv, MAGIC* mg)
+
+=for hackers
+Found in file mg.c
+
+=item magic_sethint
+X<magic_sethint>
+
+Triggered by a store to %^H, records the key/value pair to
+C<PL_compiling.cop_hints_hash>. It is assumed that hints aren't storing
+anything that would need a deep copy. Maybe we should warn if we find a
+reference.
+
int magic_sethint(SV* sv, MAGIC* mg)
=for hackers
=item mg_localize
X<mg_localize>
-Copy some of the magic from an existing SV to new localized version of
-that SV. Container magic (eg %ENV, $1, tie) gets copied, value magic
-doesn't (eg taint, pos).
+Copy some of the magic from an existing SV to new localized version of that
+SV. Container magic (eg %ENV, $1, tie) gets copied, value magic doesn't (eg
+taint, pos).
- void mg_localize(SV* sv, SV* nsv)
+If setmagic is false then no set magic will be called on the new (empty) SV.
+This typically means that assignment will soon follow (e.g. 'local $x = $y'),
+and that will handle the magic.
+
+ void mg_localize(SV* sv, SV* nsv, bool setmagic)
=for hackers
Found in file mg.c
out from under you the next time the cache is
invalidated).
- AV* mro_get_linear_isa_c3(HV* stash, I32 level)
+ AV* mro_get_linear_isa_c3(HV* stash, U32 level)
=for hackers
Found in file mro.c
out from under you the next time the cache is
invalidated).
- AV* mro_get_linear_isa_dfs(HV* stash, I32 level)
+ AV* mro_get_linear_isa_dfs(HV* stash, U32 level)
=for hackers
Found in file mro.c
{ my $x = 1; sub f { eval '$x'} } f();
+For state vars, SVf_PADSTALE is overloaded to mean 'not yet initialised'
+
AV * CvPADLIST(CV *cv)
=for hackers
=for hackers
Found in file intrpvar.h
-=item PL_ofs_sv
-X<PL_ofs_sv>
+=item PL_ofsgv
+X<PL_ofsgv>
-The output field separator - C<$,> in Perl space.
+The glob containing the output field separator - C<*,> in Perl space.
- SV* PL_ofs_sv
+ GV* PL_ofsgv
=for hackers
Found in file intrpvar.h
Given a chunk of memory, link it to the head of the list of arenas,
and split it into a list of free SVs.
- void sv_add_arena(char* ptr, U32 size, U32 flags)
+ void sv_add_arena(char *const ptr, const U32 size, const U32 flags)
=for hackers
Found in file sv.c
reference or overload conversion. You must use the C<SvNUM(sv)> macro to
access this function.
- SV* sv_2num(SV* sv)
+ SV* sv_2num(SV *const sv)
=for hackers
Found in file sv.c
Assumes that PL_op is the op that originally triggered the error, and that
PL_comppad/PL_curpad points to the currently executing pad.
- SV* find_uninit_var(OP* obase, SV* uninit_sv, bool top)
+ SV* find_uninit_var(const OP *const obase, const SV *const uninit_sv, bool top)
=for hackers
Found in file sv.c
Print appropriate "Use of uninitialized variable" warning
- void report_uninit(SV* uninit_sv)
+ void report_uninit(const SV *uninit_sv)
=for hackers
Found in file sv.c