diff options
author | Nick Ing-Simmons <nik@tiuk.ti.com> | 2000-09-03 21:54:46 +0000 |
---|---|---|
committer | Nick Ing-Simmons <nik@tiuk.ti.com> | 2000-09-03 21:54:46 +0000 |
commit | 1c846c1f6d96d2ca4dfccdcfc0ff050c1474993e (patch) | |
tree | 052cab67c23c5f42f2f3fbf0d595e76961d271d2 /embed.h | |
parent | 6570e624857a0fc90e8fa87d3479a32bd7482703 (diff) | |
download | perl-1c846c1f6d96d2ca4dfccdcfc0ff050c1474993e.tar.gz |
Hash lookup of constant strings optimization:
Introduce SvREADONLY && SvFAKE to flag an SV which has SvPVX pointing
to string table (as per sharepvn). Add newSV_pvn_share to create such
a thing. Make hv.c compare addresses of strings and skip string compare
if equal. Make method_named and helem ops use these shared-string SVs
when arg is constant. Make keys op return shared-string SVs (less clearly
a win).
p4raw-id: //depot/perl@7016
Diffstat (limited to 'embed.h')
-rw-r--r-- | embed.h | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -1,4 +1,4 @@ -/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -481,6 +481,7 @@ #define newSVnv Perl_newSVnv #define newSVpv Perl_newSVpv #define newSVpvn Perl_newSVpvn +#define newSVpvn_share Perl_newSVpvn_share #define newSVpvf Perl_newSVpvf #define vnewSVpvf Perl_vnewSVpvf #define newSVrv Perl_newSVrv @@ -1940,6 +1941,7 @@ #define newSVnv(a) Perl_newSVnv(aTHX_ a) #define newSVpv(a,b) Perl_newSVpv(aTHX_ a,b) #define newSVpvn(a,b) Perl_newSVpvn(aTHX_ a,b) +#define newSVpvn_share(a,b,c) Perl_newSVpvn_share(aTHX_ a,b,c) #define vnewSVpvf(a,b) Perl_vnewSVpvf(aTHX_ a,b) #define newSVrv(a,b) Perl_newSVrv(aTHX_ a,b) #define newSVsv(a) Perl_newSVsv(aTHX_ a) @@ -3795,6 +3797,8 @@ #define newSVpv Perl_newSVpv #define Perl_newSVpvn CPerlObj::Perl_newSVpvn #define newSVpvn Perl_newSVpvn +#define Perl_newSVpvn_share CPerlObj::Perl_newSVpvn_share +#define newSVpvn_share Perl_newSVpvn_share #define Perl_newSVpvf CPerlObj::Perl_newSVpvf #define newSVpvf Perl_newSVpvf #define Perl_vnewSVpvf CPerlObj::Perl_vnewSVpvf |