summaryrefslogtreecommitdiff
path: root/proto.h
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2010-09-24 20:31:28 -0700
committerFather Chrysostomos <sprout@cpan.org>2010-09-24 20:31:28 -0700
commit078504b2d0c069e5cefbe4670341aa18838d452d (patch)
tree82ea75dc3a93df1feb46a1a1b97a774ab28f6b20 /proto.h
parent582ac935ddba404ce00c7eda1a75e8a2c0412eee (diff)
downloadperl-078504b2d0c069e5cefbe4670341aa18838d452d.tar.gz
[perl #76814] FETCH called twice - string comparison ops
This patch changes sv_eq, sv_cmp, sv_cmp_locale and sv_collxfrm to _flags forms, with macros under the old names for sv_eq and sv_collxfrm, but functions for sv_cmp* since pp_sort.c needs them.
Diffstat (limited to 'proto.h')
-rw-r--r--proto.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/proto.h b/proto.h
index 91dae7cb27..688cf125af 100644
--- a/proto.h
+++ b/proto.h
@@ -3359,12 +3359,18 @@ PERL_CALLCONV void Perl_sv_clear(pTHX_ SV *const sv)
assert(sv)
PERL_CALLCONV I32 Perl_sv_cmp(pTHX_ SV *const sv1, SV *const sv2);
+PERL_CALLCONV I32 Perl_sv_cmp_flags(pTHX_ SV *const sv1, SV *const sv2, const I32 flags);
PERL_CALLCONV I32 Perl_sv_cmp_locale(pTHX_ SV *const sv1, SV *const sv2);
+PERL_CALLCONV I32 Perl_sv_cmp_locale_flags(pTHX_ SV *const sv1, SV *const sv2, const I32 flags);
#if defined(USE_LOCALE_COLLATE)
-PERL_CALLCONV char* Perl_sv_collxfrm(pTHX_ SV *const sv, STRLEN *const nxp)
+/* PERL_CALLCONV char* sv_collxfrm(pTHX_ SV *const sv, STRLEN *const nxp)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2); */
+
+PERL_CALLCONV char* Perl_sv_collxfrm_flags(pTHX_ SV *const sv, STRLEN *const nxp, I32 const flags)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_COLLXFRM \
+#define PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS \
assert(sv); assert(nxp)
#endif
@@ -3402,7 +3408,8 @@ PERL_CALLCONV bool Perl_sv_does(pTHX_ SV* sv, const char *const name)
#define PERL_ARGS_ASSERT_SV_DOES \
assert(sv); assert(name)
-PERL_CALLCONV I32 Perl_sv_eq(pTHX_ SV* sv1, SV* sv2);
+/* PERL_CALLCONV I32 sv_eq(pTHX_ SV* sv1, SV* sv2); */
+PERL_CALLCONV I32 Perl_sv_eq_flags(pTHX_ SV* sv1, SV* sv2, const I32 flags);
PERL_CALLCONV void Perl_sv_free(pTHX_ SV *const sv);
PERL_CALLCONV void Perl_sv_free2(pTHX_ SV *const sv)
__attribute__nonnull__(pTHX_1);