summaryrefslogtreecommitdiff
path: root/sv.h
Commit message (Collapse)AuthorAgeFilesLines
* Move the GvNAME HEK into the IV union - every GV is now 1 pointerNicholas Clark2006-03-051-5/+12
| | | | | smaller. p4raw-id: //depot/perl@27380
* Use a HEK to store the GV's name, rather than a malloc()ed string.Nicholas Clark2006-03-051-4/+2
| | | | | | | Saves 1 word in each GV (no more strlen), and will also save the memory used by the string itself, as the HEK will exist already due to the key used by the symbol table for this GV. p4raw-id: //depot/perl@27379
* Silence a GCC warningSteve Hay2006-02-271-1/+1
| | | | | (assignment from incompatible pointer type) p4raw-id: //depot/perl@27348
* Speedups and shrinkages of SvREFCNT_incAndy Lester2006-02-271-1/+66
| | | | | Message-ID: <20060224205434.GA17867@petdance.com> p4raw-id: //depot/perl@27334
* GvFLAGS can be overlaid with SvCUR.Nicholas Clark2006-02-251-4/+2
| | | p4raw-id: //depot/perl@27330
* Use xpv_len rather than xpv_cur in GVs to store GvASSIGN_GENERATION.Nicholas Clark2006-02-251-2/+16
| | | | | Assert that GVs do not access SvCUR or SvLEN. p4raw-id: //depot/perl@27328
* xgv_stash can be stored as a union with the NV, reducing the size ofNicholas Clark2006-02-251-16/+44
| | | | | PVGVs by another pointer. p4raw-id: //depot/perl@27326
* Curiously none of the macros SvIVX, SvUVX or SvNVX are used onNicholas Clark2006-02-251-0/+3
| | | | | typeglobs. p4raw-id: //depot/perl@27325
* Store GvGP in the SV head union. For all the common lookups [eg GvCV()]Nicholas Clark2006-02-251-13/+29
| | | | | | | | this avoids 1 pointer dereference and the associated risk of a CPU cache miss. Although this patch looks deceptively small, I fear its CBV(*) might be rather high. (* Crack By Volume) p4raw-id: //depot/perl@27323
* Avoid special case SvMAGIC macros just to cope with Perl_sv_unmagic.Nicholas Clark2006-02-241-13/+4
| | | p4raw-id: //depot/perl@27319
* Use PVMGs rather than PVGVs to store the names of our variables in theNicholas Clark2006-02-241-1/+1
| | | | | pad. p4raw-id: //depot/perl@27313
* Store the stash for our in the magic slot. This will allow us to useNicholas Clark2006-02-241-21/+41
| | | | | | PVMGs in pad names where previously PVGVs were used. In turn, this gives much greater flexibility for the layout of PVGVs. p4raw-id: //depot/perl@27312
* Replace usage of GvSTASH for storing the stash of C<our> withNicholas Clark2006-02-241-0/+7
| | | | | OURSTASH. Set the stash with OURSTASH_SET. p4raw-id: //depot/perl@27306
* assert that SvMAGIC is never non-NULL for any PVMG used as a pad name.Nicholas Clark2006-02-241-0/+2
| | | p4raw-id: //depot/perl@27304
* Redo previous sv.h change.Nicholas Clark2006-02-241-9/+10
| | | p4raw-id: //depot/perl@27302
* Replace direct flags tests & manipulations for SVpad_TYPED andNicholas Clark2006-02-231-0/+8
| | | | | | SVpad_OUR with macros SvPAD_TYPED(), SvPAD_OUR() etc, to abstract away the flags bits acutally used to store this information. p4raw-id: //depot/perl@27294
* Document a sixth use for SVf_FAKENicholas Clark2006-02-231-0/+3
| | | p4raw-id: //depot/perl@27293
* Remove get magic from typeglobs. This means that PVGVs holdingNicholas Clark2006-02-231-2/+2
| | | | | | | | | | | typeglobs never need to use SvPVX. This comes at price - typeglobs were using magic get for their stringificiation, and to pass SvOK(), so need to make typeglobs SvOK by default (by sucking SVp_SCREAM into SVf_OK - it's the only flag left), tweak SvSCREAM() to also check SVp_POK, and teach sv_2[inpu]v how to convert globs. However, it should free up SvPVX for the next part of the plan to pointer indirections, and therefore CPU cache pressure. p4raw-id: //depot/perl@27278
* Reorder the SV flags so that SVp_?OK and SVf_?OK occupy 8 contiguousNicholas Clark2006-02-211-24/+25
| | | | | | | bits (0x0000XX00). This makes perl 3K smaller with -Os on x86 FreeBSD, and might also help on other architectures (eg with 8 contiguous bits, the SvOK() test on ARM won't need an intermediate constant). p4raw-id: //depot/perl@27264
* Re-order the definitions of the private bits in SvFLAGS by value, soNicholas Clark2006-02-211-20/+30
| | | | | that we can see where we're already double-booked. p4raw-id: //depot/perl@27259
* Document the many uses of SVf_FAKE.Nicholas Clark2006-02-211-1/+12
| | | p4raw-id: //depot/perl@27258
* Steal code from maint, and use PERL_ARENA_ROOTS_SIZE to size the arenaNicholas Clark2006-02-201-0/+2
| | | | | | arrays, rather than SVt_LAST, so that SVt_LAST can truthfully remain the number of genuine SV types, unclouded by implementation details. p4raw-id: //depot/perl@27251
* PVFMs don't need CvDEPTH, and PVCVs don't use SvIVX, so movingNicholas Clark2006-02-201-6/+16
| | | | | | | | | xcv_depth into the IV union saves 4(ish) bytes per CV and format. "ish" because it was a long, but has been changed to I32 (along with the corresponding field in struct block_sub) so as not to enlarge the IV union on platforms where sizeof(long) > sizeof(IV), or struct block_sub where sizeof(long) > sizeof(I32) p4raw-id: //depot/perl@27247
* xcv_root and xcv_xsub can also be merged into a union, providing a newNicholas Clark2006-02-201-6/+12
| | | | | flag is added to denote whether the PVCV is perl or XSUB. p4raw-id: //depot/perl@27244
* xcv_start and xcv_xsubany can be merged into a union, as they are neverNicholas Clark2006-02-201-2/+4
| | | | | both needed. p4raw-id: //depot/perl@27243
* Shave sizeof(NV) bytes from formats, by using the same offsetNicholas Clark2006-02-191-0/+29
| | | | | manoeuvre as PVs, PVIVs, PVAVs and PVHVs. p4raw-id: //depot/perl@27231
* AVs and HVs don't have IVXs or NVXs, so assert this too.Nicholas Clark2006-02-191-1/+7
| | | p4raw-id: //depot/perl@27230
* Under -DDEBUGGING, assert that SvIVX, SvUVX and SvNVX aren't beingNicholas Clark2006-02-191-6/+30
| | | | | | used on scalars that don't have the memory allocated. Correct SvSTASH and SvMAGIC to only evaluate the sv argument once. p4raw-id: //depot/perl@27229
* arena-rework : consolidated patchJim Cromie2006-02-181-1/+6
| | | | | | | | | Message-ID: <43F0F649.9040205@gmail.com> Tweaked somewhat to split the arena boolean from the arena_size, and with the PTE still doubling-up with one of the SV types in the array. p4raw-id: //depot/perl@27215
* Re: [PATCH] s/Null(gv|hv|sv)/NULL/gSteven Schubiger2006-02-031-1/+1
| | | | | | Message-ID: <20060203152449.GI12591@accognoscere.homeunix.org> Date: Fri, 3 Feb 2006 16:24:49 +0100 p4raw-id: //depot/perl@27065
* Re: [PATCH] s/Null(av|ch)/NULL/gSteven Schubiger2006-02-021-1/+1
| | | | | Message-ID: <20060202093849.GD12591@accognoscere.homeunix.org> p4raw-id: //depot/perl@27054
* By changing SvVOK() from returning 0/1 to 0/pointer-to-magic we canNicholas Clark2006-01-281-1/+2
| | | | | | save duplicating mg_find calls, without changing the semantics in any boolean context. p4raw-id: //depot/perl@26979
* More copyright updatesRafael Garcia-Suarez2006-01-041-1/+1
| | | p4raw-id: //depot/perl@26652
* Move all the xxxpvs() macros to handy.h.Gisle Aas2006-01-041-6/+0
| | | | | | This brings them closer to STR_WITH_LEN. Besides only half of them were sv-related after change 26649. p4raw-id: //depot/perl@26650
* Make the new STR_WITH_LEN() affected compile under -Dusethreads.Gisle Aas2006-01-041-3/+5
| | | | | Can't use STR_WITH_LEN() as argument to a macro :-( p4raw-id: //depot/perl@26649
* Introduce newSVpvs_share() macro.Gisle Aas2006-01-041-0/+1
| | | | | Gets rid of some hardcoded string lengths. p4raw-id: //depot/perl@26646
* Introduce the macros newSVpvs(str) and sv_catpvs(sv, str).Gisle Aas2006-01-041-0/+3
| | | | | Gets rid of many hardcoded string lengths. p4raw-id: //depot/perl@26641
* Fixing the SVREFCNT macroAndy Lester2005-12-291-1/+1
| | | | | Message-ID: <20051228193051.GD23207@petdance.com> p4raw-id: //depot/perl@26524
* Typo fixes from Robin Houston inNicholas Clark2005-12-161-2/+2
| | | | | <20051216201446.GA24709@rpc142.cs.man.ac.uk> p4raw-id: //depot/perl@26382
* Map the HE arena onto SV type 0 (SVt_NULL).Nicholas Clark2005-11-191-0/+3
| | | | | Abolish PL_he_root and PL_he_arenaroot. p4raw-id: //depot/perl@26171
* Move the location of the definition of the arena slot used for pteNicholas Clark2005-11-171-0/+3
| | | | | | | into sv.h, to keep it in one central place. Change it to use SVt_RV. (Having SVt_IV for real use will be useful. SVt_RV has no body, and doesn't pretend to have one, so it is spare.) p4raw-id: //depot/perl@26148
* Re: eliminate discreet arenarootsJim Cromie2005-11-161-1/+2
| | | | | | Message-ID: <4378E5B0.3010708@gmail.com> Date: Mon, 14 Nov 2005 12:29:52 -0700 p4raw-id: //depot/perl@26141
* Mark all places where perl needs to look at a possibly-freed scalarNicholas Clark2005-11-141-0/+5
| | | | | with a macro SvIS_FREED(sv) p4raw-id: //depot/perl@26132
* Fix breakages that prevended -DPERL_POISON from compiling.Nicholas Clark2005-11-131-2/+9
| | | p4raw-id: //depot/perl@26112
* Replace sv_catsv_mg and sv_catpvn_mg, and move the obsolete bodies toNicholas Clark2005-10-291-0/+3
| | | | | mathoms.c p4raw-id: //depot/perl@25885
* Add a new SMAGIC flag, to signal a call to SvSETMAGIC. Add it toNicholas Clark2005-10-291-0/+1
| | | | | | | sv_catpvn_flags and sv_catsv_flags, and then re-implement sv_catpvn_mg and sv_catsv_mg as calls to sv_catpvn_flags and sv_catsv_flags respectively. p4raw-id: //depot/perl@25884
* sv_2pv_nolen, sv_2pvbyte_nolen and sv_2pvutf8_nolen can all be replacedNicholas Clark2005-10-291-0/+3
| | | | | with terse macros, and the function bodies retired. p4raw-id: //depot/perl@25883
* Replace sv_force_normal with a macro that calls sv_force_normal_flags.Nicholas Clark2005-10-291-1/+2
| | | p4raw-id: //depot/perl@25879
* Replace sv_unref with a macro that calls sv_unref_flagsNicholas Clark2005-10-291-0/+2
| | | p4raw-id: //depot/perl@25878
* sv_taint() can easily be replaced by a macro.Nicholas Clark2005-10-291-0/+2
| | | p4raw-id: //depot/perl@25876