diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-04-30 10:58:11 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-04-30 10:58:11 +0000 |
commit | d34786ba12ee5b96d9e34dd6fcdda158d7d2597b (patch) | |
tree | 24a71c61d759d5b597cab9da8ba55cfcab45b669 /sv.h | |
parent | 6a841143011641ad36ad4f8e2f2896eb0e1a59dc (diff) | |
download | perl-d34786ba12ee5b96d9e34dd6fcdda158d7d2597b.tar.gz |
Document SvGAMAGIC(), and its significance w.r.t. the side effects of
inadvertently calling magic and overloading too often.
p4raw-id: //depot/perl@28021
Diffstat (limited to 'sv.h')
-rw-r--r-- | sv.h | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -992,6 +992,18 @@ in gv.h: */ (SvROK(sv) && (SvFLAGS(SvRV(sv)) &= ~SVf_AMAGIC)) #endif +/* +=for apidoc Am|char*|SvGAMAGIC|SV* sv + +Returns true if the SV has get magic or overloading. If either is true then +the scalar is active data, and has the potential to return a new value every +time it is accessed. Hence you must be careful to only read it once per user +logical operation and work with that returned value. If neither is true then +the scalar's value cannot change unless written to. + +=cut +*/ + #define SvGAMAGIC(sv) (SvGMAGICAL(sv) || SvAMAGIC(sv)) #define Gv_AMG(stash) (PL_amagic_generation && Gv_AMupdate(stash)) |