Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Understanding Devel::Peek output

by dave_the_m (Monsignor)
on Nov 29, 2020 at 13:22 UTC ( #11124364=note: print w/replies, xml ) Need Help??


in reply to Understanding Devel::Peek output

In general an SV consists of two parts: a head, containing some flags, a reference count and a pointer to the second part: a body, containing various type-specific fields; for example a PV body contains a size, current length and a pointer to a string.

In fact as an optimisation the head contains one extra general-purpose field, which can hold a pointer, or an IV or whatever. The presence of this field means that for "small" SVs like IVs, a body doesn't have to be allocated. In this case, the head's "pointer to body" in fact points back to itself, but possibly with a small offset to make the alignment of an IV in a body (xiv_u.xivu_iv) the same as the alignment for an IV value in the head (sv_u.svu_iv).

Dave.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11124364]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2022-01-24 08:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:












    Results (64 votes). Check out past polls.

    Notices?