summaryrefslogtreecommitdiff
path: root/embed.h
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>2000-09-03 21:54:46 +0000
committerNick Ing-Simmons <nik@tiuk.ti.com>2000-09-03 21:54:46 +0000
commit1c846c1f6d96d2ca4dfccdcfc0ff050c1474993e (patch)
tree052cab67c23c5f42f2f3fbf0d595e76961d271d2 /embed.h
parent6570e624857a0fc90e8fa87d3479a32bd7482703 (diff)
downloadperl-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.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/embed.h b/embed.h
index ced6e9df4e..9bd72ad9b8 100644
--- a/embed.h
+++ b/embed.h
@@ -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