commit fcfdefc9097ffbcda0b2b64e8b24b4c874ba7310 Author: Nicolas Chauvet <kwizart@xxxxxxxxx> Date: Sun Apr 22 13:48:14 2012 +0200 Fix rhbz#815073 0001-Fix-64-bit-warnings.patch | 48 +++++++++++++++++++++++ 0001-Fix-compiler-warnings.patch | 78 ++++++++++++++++++++++++++++++++++++++ perl-Devel-FindRef.spec | 10 ++++- 3 files changed, 134 insertions(+), 2 deletions(-) --- diff --git a/0001-Fix-64-bit-warnings.patch b/0001-Fix-64-bit-warnings.patch new file mode 100644 index 0000000..4d354da --- /dev/null +++ b/0001-Fix-64-bit-warnings.patch @@ -0,0 +1,48 @@ +From 0e50780282bbe7cb56ca432657c965f064ee9cf2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@xxxxxxxxxx> +Date: Wed, 1 Feb 2012 10:40:07 +0100 +Subject: [PATCH] Fix 64-bit warnings + +--- + FindRef.xs | 15 ++++++++++----- + 1 files changed, 10 insertions(+), 5 deletions(-) + +diff --git a/FindRef.xs b/FindRef.xs +index 679958b..94920f6 100644 +--- a/FindRef.xs ++++ b/FindRef.xs +@@ -151,7 +151,8 @@ find_ (SV *target_ref) + { + STRLEN length; + char *name = HePV(he, length); +- res_pair (form ("the member '%.*s' of", length, name)); ++ int ilength = length; ++ res_pair (form ("the member '%.*s' of", ilength, name)); + } + } + +@@ -239,13 +240,17 @@ find_ (SV *target_ref) + MAGIC *mg = mg_find (sv, PERL_MAGIC_defelem); + + if (mg && mg->mg_obj) +- res_pair (form ("the target for the lvalue hash element '%.*s',", +- SvCUR (mg->mg_obj), SvPV_nolen (mg->mg_obj))); ++ { ++ STRLEN length = SvCUR (mg->mg_obj); ++ int ilength = length; ++ res_pair (form ("the target for the lvalue hash element '%.*s',", ++ ilength, SvPV_nolen (mg->mg_obj))); ++ } + else +- res_pair (form ("the target for the lvalue array element #%d,", LvTARGOFF (sv))); ++ res_pair (form ("the target for the lvalue array element #%zu,", LvTARGOFF (sv))); + } + else +- res_pair (form ("an lvalue reference target (type '%c', ofs %d, len %d),", ++ res_pair (form ("an lvalue reference target (type '%c', ofs %zu, len %zu),", + LvTYPE (sv), LvTARGOFF (sv), LvTARGLEN (sv))); + } + +-- +1.7.7.6 + diff --git a/0001-Fix-compiler-warnings.patch b/0001-Fix-compiler-warnings.patch new file mode 100644 index 0000000..9cc7347 --- /dev/null +++ b/0001-Fix-compiler-warnings.patch @@ -0,0 +1,78 @@ +From 518eb9d008bc9f001fe6d46d830617325a41d67f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@xxxxxxxxxx> +Date: Wed, 1 Feb 2012 10:24:10 +0100 +Subject: [PATCH] Fix compiler warnings + +See <https://bugzilla.redhat.com/show_bug.cgi?id=786085>. +--- + FindRef.xs | 40 ++++++++++++++++++++++++++-------------- + 1 files changed, 26 insertions(+), 14 deletions(-) + +diff --git a/FindRef.xs b/FindRef.xs +index ea7c692..679958b 100644 +--- a/FindRef.xs ++++ b/FindRef.xs +@@ -39,10 +39,13 @@ + } while (0) + + #define res_gv(sigil) \ +- res_text (form ("the global %c%s::%.*s", sigil, \ +- HvNAME (GvSTASH (sv)), \ +- GvNAME_HEK (sv) ? GvNAMELEN (sv) : 11, \ +- GvNAME_HEK (sv) ? GvNAME (sv) : "<anonymous>")) ++ do { \ ++ int32_t length = GvNAME_HEK (sv) ? GvNAMELEN (sv) : 11; \ ++ res_text (form ("the global %c%s::%.*s", sigil, \ ++ HvNAME (GvSTASH (sv)), \ ++ length, \ ++ GvNAME_HEK (sv) ? GvNAME (sv) : "<anonymous>")); \ ++ } while (0) + + MODULE = Devel::FindRef PACKAGE = Devel::FindRef + +@@ -145,7 +148,11 @@ find_ (SV *target_ref) + + while ((he = hv_iternext ((HV *)sv))) + if (HeVAL (he) == targ) +- res_pair (form ("the member '%.*s' of", HeKLEN (he), HeKEY (he))); ++ { ++ STRLEN length; ++ char *name = HePV(he, length); ++ res_pair (form ("the member '%.*s' of", length, name)); ++ } + } + + break; +@@ -195,15 +202,20 @@ find_ (SV *target_ref) + res_pair ("the containing scope for"); + + if (sv == targ && CvANON (sv)) +- if (CvSTART (sv) +- && CvSTART (sv)->op_type == OP_NEXTSTATE +- && CopLINE ((COP *)CvSTART (sv))) +- res_text (form ("the closure created at %s:%d", +- CopFILE ((COP *)CvSTART (sv)) ? CopFILE ((COP *)CvSTART (sv)) : "<unknown>", +- CopLINE ((COP *)CvSTART (sv)))); +- else +- res_text (form ("the closure created somewhere in file %s (PLEASE REPORT!)", +- CvFILE (sv) ? CvFILE (sv) : "<unknown>")); ++ { ++ if (CvSTART (sv) ++ && CvSTART (sv)->op_type == OP_NEXTSTATE ++ && CopLINE ((COP *)CvSTART (sv))) ++ { ++ uint32_t line = CopLINE ((COP *)CvSTART (sv)); ++ res_text (form ("the closure created at %s:%"PRIu32, ++ CopFILE ((COP *)CvSTART (sv)) ? CopFILE ((COP *)CvSTART (sv)) : "<unknown>", ++ line)); ++ } ++ else ++ res_text (form ("the closure created somewhere in file %s (PLEASE REPORT!)", ++ CvFILE (sv) ? CvFILE (sv) : "<unknown>")); ++ } + } + + break; +-- +1.7.7.6 + diff --git a/perl-Devel-FindRef.spec b/perl-Devel-FindRef.spec index 30b2a5f..7b6a990 100644 --- a/perl-Devel-FindRef.spec +++ b/perl-Devel-FindRef.spec @@ -1,11 +1,13 @@ Name: perl-Devel-FindRef Version: 1.42 -Release: 14%{?dist} +Release: 15%{?dist} Summary: Where is that reference to my variable hiding? License: GPL+ or Artistic Group: Development/Libraries URL: http://search.cpan.org/dist/Devel-FindRef/ Source0: http://www.cpan.org/authors/id/M/ML/MLEHMANN/Devel-FindRef-%{version}2.tar.gz +Patch0: 0001-Fix-compiler-warnings.patch +Patch1: 0001-Fix-64-bit-warnings.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: perl(ExtUtils::MakeMaker) BuildRequires: perl(common::sense) @@ -19,7 +21,8 @@ references "backwards" is usually possible. %prep %setup -q -n Devel-FindRef-%{version}2 - +%patch0 -p1 +%patch1 -p1 %build %{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS" @@ -50,6 +53,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man3/Devel*.3* %changelog +* Sun Apr 22 2012 Nicolas Chauvet <kwizart@xxxxxxxxx> - 1.42-15 +- Fix rhbz#815073 - Segfault in XS_Devel__FindRef_find_() + * Fri Jan 13 2012 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 1.42-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/perl-devel