Hello community, here is the log from the commit of package perl-Cpanel-JSON-XS for openSUSE:Factory checked in at 2017-04-11 09:36:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Cpanel-JSON-XS (Old) and /work/SRC/openSUSE:Factory/.perl-Cpanel-JSON-XS.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "perl-Cpanel-JSON-XS" Tue Apr 11 09:36:38 2017 rev:5 rq:483761 version:3.0231 Changes: -------- Binary files /work/SRC/openSUSE:Factory/perl-Cpanel-JSON-XS/perl-Cpanel-JSON-XS.changes and /work/SRC/openSUSE:Factory/.perl-Cpanel-JSON-XS.new/perl-Cpanel-JSON-XS.changes differ Old: ---- Cpanel-JSON-XS-3.0230.tar.gz New: ---- Cpanel-JSON-XS-3.0231.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Cpanel-JSON-XS.spec ++++++ --- /var/tmp/diff_new_pack.iuAUfP/_old 2017-04-11 09:36:39.901109670 +0200 +++ /var/tmp/diff_new_pack.iuAUfP/_new 2017-04-11 09:36:39.905109105 +0200 @@ -17,7 +17,7 @@ Name: perl-Cpanel-JSON-XS -Version: 3.0230 +Version: 3.0231 Release: 0 %define cpan_name Cpanel-JSON-XS Summary: Cpanel Fork of Json::Xs, Fast and Correct Serializing ++++++ Cpanel-JSON-XS-3.0230.tar.gz -> Cpanel-JSON-XS-3.0231.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0230/Changes new/Cpanel-JSON-XS-3.0231/Changes --- old/Cpanel-JSON-XS-3.0230/Changes 2017-03-12 10:49:43.000000000 +0100 +++ new/Cpanel-JSON-XS-3.0231/Changes 2017-03-29 11:49:31.000000000 +0200 @@ -2,6 +2,10 @@ TODO: http://stevehanov.ca/blog/index.php?id=104 compression +3.0231 2017-03-29 (rurban) + - Fix need() overallocation (#84 Matthew Horsfall) and missing + need() calls. + 3.0230 2017-03-12 (rurban) - Relax -Werror=declaration-after-statement for older gcc < 4.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0230/META.json new/Cpanel-JSON-XS-3.0231/META.json --- old/Cpanel-JSON-XS-3.0230/META.json 2017-03-12 10:50:59.000000000 +0100 +++ new/Cpanel-JSON-XS-3.0231/META.json 2017-03-29 11:50:36.000000000 +0200 @@ -49,6 +49,6 @@ "url" : "https://github.com/rurban/Cpanel-JSON-XS" } }, - "version" : "3.0230", + "version" : "3.0231", "x_serialization_backend" : "JSON::PP version 2.27400_02" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0230/META.yml new/Cpanel-JSON-XS-3.0231/META.yml --- old/Cpanel-JSON-XS-3.0230/META.yml 2017-03-12 10:50:59.000000000 +0100 +++ new/Cpanel-JSON-XS-3.0231/META.yml 2017-03-29 11:50:36.000000000 +0200 @@ -24,5 +24,5 @@ homepage: http://software.schmorp.de/pkg/JSON-XS.html license: http://dev.perl.org/licenses/ repository: https://github.com/rurban/Cpanel-JSON-XS -version: '3.0230' +version: '3.0231' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0230/Makefile.PL new/Cpanel-JSON-XS-3.0231/Makefile.PL --- old/Cpanel-JSON-XS-3.0230/Makefile.PL 2017-03-12 10:50:48.000000000 +0100 +++ new/Cpanel-JSON-XS-3.0231/Makefile.PL 2017-03-12 11:01:17.000000000 +0100 @@ -6,8 +6,11 @@ # https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Warning-Options.html if ($Config{gccversion} and $Config{gccversion} =~ /^(\d+\.\d+)\./) { my $gccver = $1; - $define = '-Wall -Werror=declaration-after-statement -Wextra -W' - if $gccver >= 4.2; + if ($gccver >= 4.3) { + $define = '-Wall -Werror=declaration-after-statement -Wextra -W'; + } elsif ($gccver >= 3.4) { + $define = '-Wall -Wdeclaration-after-statement -Wextra -W'; + } } WriteMakefile( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0230/SIGNATURE new/Cpanel-JSON-XS-3.0231/SIGNATURE --- old/Cpanel-JSON-XS-3.0230/SIGNATURE 2017-03-12 10:51:00.000000000 +0100 +++ new/Cpanel-JSON-XS-3.0231/SIGNATURE 2017-03-29 11:50:36.000000000 +0200 @@ -16,14 +16,14 @@ SHA1 bddff1b119b111563d9c812b92e28289c3ea450e .travis.yml SHA1 9a56f3b919dfc8fced3803e165a2e38de62646e5 COPYING -SHA1 6a735adb2ae447c8d3fea54a42ebdf02e8e676c1 Changes +SHA1 258195875eaeefe55bef4e7f5b2d1b96a6479a95 Changes SHA1 7ebf5876b2d33d6ddcfd69e2541394c63537fcfd MANIFEST -SHA1 2d2c80631cd5122bd003ea0747317750994e7b76 META.json -SHA1 c61d45775e3be8b7016317e6da3e83a9edee1637 META.yml -SHA1 33730f0ee35aa0104e84fa8ca8ae90e6ccd9a48c Makefile.PL +SHA1 4e1e40812bc44d98cad6ab814883338be720e25d META.json +SHA1 90b8dbdd1f0a4443126142a73883ef62363dbf07 META.yml +SHA1 bfc1c41215d67b1fc5e3cfbec7ceadf8ca33a206 Makefile.PL SHA1 5f9c081e4f784fbfccc7df27bf386da13f3b6301 README -SHA1 1c5fbaa4de8028f714e76c0434af5a9010cb960c XS.pm -SHA1 8a3f3edb3d37a7b96b06cbbcdefc33bdc45eb959 XS.xs +SHA1 9544213d13c4a51b8898fa4b0aa53ce2b01a60f2 XS.pm +SHA1 e9018c9c1ce1d50d352b32e2183c177514fec4f0 XS.xs SHA1 27b0bc7e0cd6fe90876fb3d285065c6a07cca028 XS/Boolean.pm SHA1 9e4b04d1af085e6959aaed51734475d350136392 bin/cpanel_json_xs SHA1 ea72bbe602baaabdd0004ef1d7e7cc3334b42bb4 eg/bench @@ -46,7 +46,7 @@ SHA1 446e9e23fbb26aca73c0c1cb168c6c31a68c9fb8 t/108_decode.t SHA1 d4d774595e581777fb13219a211c819c1d2f8575 t/109_encode.t SHA1 849b88cb5f17ca6c2324c78e1c4cb1d7857caccb t/10_pc_keysort.t -SHA1 cb666101c085d398374238e991624e703220c39b t/110_bignum.t +SHA1 c7eafd2e355b664d969f9ca2d5a9874e70cc0396 t/110_bignum.t SHA1 b007b686bb590e5eed3976edc78310437ae169d4 t/112_upgrade.t SHA1 01a0a0644343059c7185cb0b3b00b869d5211e1d t/113_overloaded_eq.t SHA1 8dece990d5b07df0ae1b6364caefced774cb587d t/114_decode_prefix.t @@ -424,13 +424,13 @@ SHA1 741e9e8bf600c7f7441794fe49ea8904cfd4bf58 t/z_perl_minimum_version.t SHA1 d91cc1b39fcb1dbf23c11ebb5885cfaaeb2c3a50 t/z_pod-coverage.t SHA1 2eb526b1649c6306df677d7ae63433856b672476 t/z_pod-spell-mistakes.t -SHA1 6f532d207153835d9abe3360d85cb8f00c09bbfe t/z_pod-spelling.t +SHA1 6e74cfbeb5080643d126b9d74f2f7e6dad26b013 t/z_pod-spelling.t SHA1 8db603172315dd0853ecc383dba4945c5b673e8f t/z_pod.t SHA1 3b92cafada1b683bbf03593d22eb40671e744bc7 t/zero-mojibake.t SHA1 e93c9b53438be114c25aa426742e24f4343057a7 typemap -----BEGIN PGP SIGNATURE----- -iF0EARECAB0WIQRZHhhUcL58V8z0UW2abZJij/3JQgUCWMUaBAAKCRCabZJij/3J -QkuVAJkBzJ/sKatQVRX2xw87kuVD+9YDWwCdEjShJOLSAd2+4kRv469YBo9bVLc= -=HEXK +iF0EARECAB0WIQRZHhhUcL58V8z0UW2abZJij/3JQgUCWNuDbAAKCRCabZJij/3J +Qq3rAJ9UoqzCSlLFGL4czmFQzCaE84BbUwCePETrwmRO36yYTtlPPlpjSgo1kcc= +=18pg -----END PGP SIGNATURE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0230/XS.pm new/Cpanel-JSON-XS-3.0231/XS.pm --- old/Cpanel-JSON-XS-3.0230/XS.pm 2017-03-12 10:25:48.000000000 +0100 +++ new/Cpanel-JSON-XS-3.0231/XS.pm 2017-03-29 11:45:19.000000000 +0200 @@ -1,5 +1,5 @@ package Cpanel::JSON::XS; -our $VERSION = '3.0230'; +our $VERSION = '3.0231'; our $XS_VERSION = $VERSION; $VERSION = eval $VERSION; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0230/XS.xs new/Cpanel-JSON-XS-3.0231/XS.xs --- old/Cpanel-JSON-XS-3.0230/XS.xs 2017-03-10 15:06:22.000000000 +0100 +++ new/Cpanel-JSON-XS-3.0231/XS.xs 2017-03-29 11:45:19.000000000 +0200 @@ -681,6 +681,9 @@ INLINE void need (pTHX_ enc_t *enc, STRLEN len) { + DEBUG_v(Perl_deb(aTHX_ "need enc: %p %p %4ld, want: %ld\n", enc->cur, enc->end, + enc->end - enc->cur, (long)len)); + assert(enc->cur <= enc->end); if (UNLIKELY(enc->cur + len >= enc->end)) { STRLEN cur = enc->cur - (char *)SvPVX (enc->sv); @@ -717,44 +720,58 @@ while (str < end) { unsigned char ch = *(unsigned char *)str; + DEBUG_v(Perl_deb(aTHX_ "str enc: %p %p %4ld, want: %lu\n", enc->cur, enc->end, + enc->end - enc->cur, (long unsigned)len)); if (LIKELY(ch >= 0x20 && ch < 0x80)) /* most common case */ { + assert(enc->cur <= enc->end); if (UNLIKELY(ch == '"')) /* but with slow exceptions */ { - need (aTHX_ enc, len += 1); + need (aTHX_ enc, 2); *enc->cur++ = '\\'; *enc->cur++ = '"'; + ++len; } else if (UNLIKELY(ch == '\\')) { - need (aTHX_ enc, len += 1); + need (aTHX_ enc, 2); *enc->cur++ = '\\'; *enc->cur++ = '\\'; + ++len; } else if (UNLIKELY(ch == '/' && (enc->json.flags & F_ESCAPE_SLASH))) { - need (aTHX_ enc, len += 1); + need (aTHX_ enc, 2); *enc->cur++ = '\\'; *enc->cur++ = '/'; + ++len; } - else + else { + need (aTHX_ enc, 1); *enc->cur++ = ch; + } ++str; } else { + assert(enc->cur <= enc->end); switch (ch) { - case '\010': need (aTHX_ enc, len += 1); *enc->cur++ = '\\'; *enc->cur++ = 'b'; ++str; break; - case '\011': need (aTHX_ enc, len += 1); *enc->cur++ = '\\'; *enc->cur++ = 't'; ++str; break; - case '\012': need (aTHX_ enc, len += 1); *enc->cur++ = '\\'; *enc->cur++ = 'n'; ++str; break; - case '\014': need (aTHX_ enc, len += 1); *enc->cur++ = '\\'; *enc->cur++ = 'f'; ++str; break; - case '\015': need (aTHX_ enc, len += 1); *enc->cur++ = '\\'; *enc->cur++ = 'r'; ++str; break; + case '\010': need (aTHX_ enc, 2); + *enc->cur++ = '\\'; *enc->cur++ = 'b'; ++len; ++str; break; + case '\011': need (aTHX_ enc, 2); + *enc->cur++ = '\\'; *enc->cur++ = 't'; ++len; ++str; break; + case '\012': need (aTHX_ enc, 2); + *enc->cur++ = '\\'; *enc->cur++ = 'n'; ++len; ++str; break; + case '\014': need (aTHX_ enc, 2); + *enc->cur++ = '\\'; *enc->cur++ = 'f'; ++len; ++str; break; + case '\015': need (aTHX_ enc, 2); + *enc->cur++ = '\\'; *enc->cur++ = 'r'; ++len; ++str; break; - default: - { + default: + { STRLEN clen; UV uch; @@ -776,49 +793,55 @@ if (enc->json.flags & F_BINARY) { /* MB cannot arrive here */ - need (aTHX_ enc, len += 3); + need (aTHX_ enc, 4); *enc->cur++ = '\\'; *enc->cur++ = 'x'; *enc->cur++ = PL_hexdigit [(uch >> 4) & 15]; *enc->cur++ = PL_hexdigit [ uch & 15]; + len += 3; } else if (uch >= 0x10000UL) { if (uch >= 0x110000UL) croak ("out of range codepoint (0x%lx) encountered, unrepresentable in JSON", (unsigned long)uch); - need (aTHX_ enc, len += 11); + need (aTHX_ enc, 12); sprintf (enc->cur, "\\u%04x\\u%04x", (int)((uch - 0x10000) / 0x400 + 0xD800), (int)((uch - 0x10000) % 0x400 + 0xDC00)); enc->cur += 12; + len += 11; } else { - need (aTHX_ enc, len += 5); + need (aTHX_ enc, 6); *enc->cur++ = '\\'; *enc->cur++ = 'u'; *enc->cur++ = PL_hexdigit [ uch >> 12 ]; *enc->cur++ = PL_hexdigit [(uch >> 8) & 15]; *enc->cur++ = PL_hexdigit [(uch >> 4) & 15]; *enc->cur++ = PL_hexdigit [ uch & 15]; + len += 5; } str += clen; } else if (enc->json.flags & F_LATIN1) { + need (aTHX_ enc, 1); *enc->cur++ = uch; str += clen; } else if (enc->json.flags & F_BINARY) { + need (aTHX_ enc, 1); *enc->cur++ = uch; str += clen; } else if (is_utf8) { - need (aTHX_ enc, len += clen); + need (aTHX_ enc, clen); + len += clen; do { *enc->cur++ = *str++; @@ -827,9 +850,10 @@ } else { /* never more than 11 bytes needed */ - need (aTHX_ enc, len += UTF8_MAXBYTES - 1); + need (aTHX_ enc, UTF8_MAXBYTES); enc->cur = (char*)encode_utf8 ((U8*)enc->cur, uch); ++str; + len += UTF8_MAXBYTES - 1; } } } @@ -861,7 +885,6 @@ INLINE void encode_space (pTHX_ enc_t *enc) { - need (aTHX_ enc, 1); encode_ch (aTHX_ enc, ' '); } @@ -870,7 +893,6 @@ { if (enc->json.flags & F_INDENT) { - need (aTHX_ enc, 1); encode_ch (aTHX_ enc, '\n'); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0230/t/110_bignum.t new/Cpanel-JSON-XS-3.0231/t/110_bignum.t --- old/Cpanel-JSON-XS-3.0230/t/110_bignum.t 2016-11-16 12:43:56.000000000 +0100 +++ new/Cpanel-JSON-XS-3.0231/t/110_bignum.t 2017-03-29 11:45:19.000000000 +0200 @@ -38,7 +38,7 @@ $e = $json->encode($num); is($e, '2.0000000000000000001', 'encode bigfloat') or Dump $e; -my $num = $json->decode(q|[100000000000000000000000000000000000000]|)->[0]; +$num = $json->decode(q|[100000000000000000000000000000000000000]|)->[0]; isa_ok( $num, 'Math::BigInt' ); is( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cpanel-JSON-XS-3.0230/t/z_pod-spelling.t new/Cpanel-JSON-XS-3.0231/t/z_pod-spelling.t --- old/Cpanel-JSON-XS-3.0230/t/z_pod-spelling.t 2016-10-30 13:27:46.000000000 +0100 +++ new/Cpanel-JSON-XS-3.0231/t/z_pod-spelling.t 2017-03-29 11:45:19.000000000 +0200 @@ -13,76 +13,117 @@ all_pod_files_spelling_ok(); __DATA__ -CBOR -cbor -syck -interop -nonref -noncharacters -Lehmann -bencode -clzf -commandline -fromformat -le -toformat -yaml -BOM BMP +BOM +BOM's BSON +CBOR CVE -Crockford Cpanel +Crockford +Crockford's +DESERIALIZATION +Deserializing ECMAscript GPL +IETF Iceweasel +JSON +JSON's KOI Lehmann +Lehmann MLEHMANN Mojo +MongoDB MovableType NOK +NaN's +OO +QNAN Reini +SNAN +STDIN +STDOUT SixApart Storable TCP +UTF XSS amd +arg +arrayrefs ascii autodetection backported backrefs +bencode +bugtracker cPanel +cbor +classname +clzf +codepoints codeset codesets +commandline conformant +cpan datastructure +deserialization +deserialize +deserialized deserializer +deserializing +fromformat +github +hashrefs +interop +interoperability ithread ithreads +javascript +javascript's +json latin +le nan +nd ness +noncharacters +nonref numifying onwards optimizations parsable +parsers postprocessing ppport -queryable -QNAN qnan +queryable +recurses recursing +repo resizes roundtripping +runtime sanify -SNAN +serializer +serializers snan src +storable +stringifies +stringifying superset +syck testsuite th +toformat typeless un +unblessed unicode +utf xs +yaml