Skip to content

Instantly share code, notes, and snippets.

@swiftgeek
Created June 20, 2014 21:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save swiftgeek/4c673a28060109bcdd69 to your computer and use it in GitHub Desktop.
Save swiftgeek/4c673a28060109bcdd69 to your computer and use it in GitHub Desktop.
math clipper 5.20 update
diff -rupN Math-Clipper-1.22/Changes Math-Clipper-1.23/Changes
--- Math-Clipper-1.22/Changes 2013-05-19 17:16:04.000000000 +0200
+++ Math-Clipper-1.23/Changes 2014-05-22 20:35:14.000000000 +0200
@@ -1,5 +1,10 @@
Revision history for Perl extension Math::Clipper.
+1.23 Thu May 22 20:30:00 2014
+
+ - Fix 5.20 compatibility: av_extend is now using
+ unsigned lengths.
+
1.22 Sun May 19 17:14:00 2013
- Fixed some memory leaks.
diff -rupN Math-Clipper-1.22/MANIFEST Math-Clipper-1.23/MANIFEST
--- Math-Clipper-1.22/MANIFEST 2013-05-19 17:16:04.000000000 +0200
+++ Math-Clipper-1.23/MANIFEST 2014-05-22 20:35:14.000000000 +0200
@@ -3,6 +3,7 @@ Changes
lib/Math/Clipper.pm
MANIFEST This list of files
MANIFEST.SKIP
+META.json
META.yml
src/clipper.cpp
src/clipper.hpp
@@ -25,4 +26,3 @@ t/012_polytree.t
xsp/Clipper.xsp
xsp/my.map
xsp/types.xspt
-META.json
diff -rupN Math-Clipper-1.22/META.json Math-Clipper-1.23/META.json
--- Math-Clipper-1.22/META.json 2013-05-19 17:16:04.000000000 +0200
+++ Math-Clipper-1.23/META.json 2014-05-22 20:35:14.000000000 +0200
@@ -1,10 +1,10 @@
{
"abstract" : "Polygon clipping in 2D",
"author" : [
- "Steffen Mueller (E<lt>smueller@cpan.orgE<gt>),\nMike Sheldrake and Alessandro Ranellucci (aar/alexrj)"
+ "Steffen Mueller (E<lt>smueller@cpan.orgE<gt>),"
],
"dynamic_config" : 1,
- "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.120630",
+ "generated_by" : "Module::Build version 0.4205",
"license" : [
"perl_5"
],
@@ -17,7 +17,7 @@
"build" : {
"requires" : {
"ExtUtils::Typemaps::Default" : "0.05",
- "ExtUtils::XSpp" : "0.16",
+ "ExtUtils::XSpp" : "0.18",
"Test::Deep" : "0"
}
},
@@ -25,14 +25,14 @@
"requires" : {
"ExtUtils::CppGuess" : "0.07",
"Module::Build" : "0.38",
- "Module::Build::WithXSpp" : "0.10"
+ "Module::Build::WithXSpp" : "0.14"
}
}
},
"provides" : {
"Math::Clipper" : {
"file" : "lib/Math/Clipper.pm",
- "version" : "1.22"
+ "version" : "1.23"
}
},
"release_status" : "stable",
@@ -41,5 +41,5 @@
"http://dev.perl.org/licenses/"
]
},
- "version" : "1.22"
+ "version" : "1.23"
}
diff -rupN Math-Clipper-1.22/META.yml Math-Clipper-1.23/META.yml
--- Math-Clipper-1.22/META.yml 2013-05-19 17:16:04.000000000 +0200
+++ Math-Clipper-1.23/META.yml 2014-05-22 20:35:14.000000000 +0200
@@ -1,26 +1,26 @@
---
abstract: 'Polygon clipping in 2D'
author:
- - "Steffen Mueller (E<lt>smueller@cpan.orgE<gt>),\nMike Sheldrake and Alessandro Ranellucci (aar/alexrj)"
+ - 'Steffen Mueller (E<lt>smueller@cpan.orgE<gt>),'
build_requires:
- ExtUtils::Typemaps::Default: 0.05
- ExtUtils::XSpp: 0.16
- Test::Deep: 0
+ ExtUtils::Typemaps::Default: '0.05'
+ ExtUtils::XSpp: '0.18'
+ Test::Deep: '0'
configure_requires:
- ExtUtils::CppGuess: 0.07
- Module::Build: 0.38
- Module::Build::WithXSpp: 0.10
+ ExtUtils::CppGuess: '0.07'
+ Module::Build: '0.38'
+ Module::Build::WithXSpp: '0.14'
dynamic_config: 1
-generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.120630'
+generated_by: 'Module::Build version 0.4205, CPAN::Meta::Converter version 2.140640'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Math-Clipper
provides:
Math::Clipper:
file: lib/Math/Clipper.pm
- version: 1.22
+ version: '1.23'
resources:
license: http://dev.perl.org/licenses/
-version: 1.22
+version: '1.23'
diff -rupN Math-Clipper-1.22/lib/Math/Clipper.pm Math-Clipper-1.23/lib/Math/Clipper.pm
--- Math-Clipper-1.22/lib/Math/Clipper.pm 2013-05-19 17:16:04.000000000 +0200
+++ Math-Clipper-1.23/lib/Math/Clipper.pm 2014-05-22 20:35:14.000000000 +0200
@@ -12,7 +12,7 @@ our @ISA = qw(Exporter);
BEGIN {
use XSLoader;
- $VERSION = '1.22';
+ $VERSION = '1.23';
XSLoader::load('Math::Clipper', $VERSION);
}
@@ -620,7 +620,7 @@ contact information.
The C<Math::Clipper> module is
-Copyright (C) 2010, 2011 by Steffen Mueller
+Copyright (C) 2010, 2011, 2014 by Steffen Mueller
Copyright (C) 2011 by Mike Sheldrake
diff -rupN Math-Clipper-1.22/src/poly2av.h Math-Clipper-1.23/src/poly2av.h
--- Math-Clipper-1.22/src/poly2av.h 2013-05-19 17:16:04.000000000 +0200
+++ Math-Clipper-1.23/src/poly2av.h 2014-05-22 20:35:14.000000000 +0200
@@ -9,7 +9,7 @@ polygon2perl(pTHX_ const ClipperLib::Pol
AV* av = newAV();
AV* innerav;
const unsigned int len = poly.size();
- av_extend(av, len-1);
+ av_extend(av, len == 0 ? 0 : len-1);
for (unsigned int i = 0; i < len; i++) {
innerav = newAV();
av_store(av, i, newRV_noinc((SV*)innerav));
@@ -38,7 +38,7 @@ polygons2perl(pTHX_ const ClipperLib::Po
AV* av = newAV();
SV* innerav;
const unsigned int len = poly.size();
- av_extend(av, len-1);
+ av_extend(av, len == 0 ? 0 : len-1);
for (unsigned int i = 0; i < len; i++) {
innerav = polygon2perl(aTHX_ poly[i]);
av_store(av, i, innerav);
@@ -63,7 +63,7 @@ expolygons2perl(pTHX_ const ExPolygons&
AV* av = newAV();
SV* innerav;
const unsigned int len = polys.size();
- av_extend(av, len-1);
+ av_extend(av, len == 0 ? 0 : len-1);
for (unsigned int i = 0; i < len; i++) {
innerav = expolygon2perl(aTHX_ polys[i]);
av_store(av, i, innerav);
@@ -78,7 +78,7 @@ polynode_children_2_perl(const PolyNode&
{
AV* av = newAV();
const unsigned int len = node.ChildCount();
- av_extend(av, len-1);
+ av_extend(av, len == 0 ? 0 : len-1);
for (int i = 0; i < len; ++i) {
av_store(av, i, polynode2perl(*node.Childs[i]));
}
@swiftgeek
Copy link
Author

Affected lines in Slic3r:
./xs/xsp/my.map:238: av_extend(av, $var.size()-1);
./xs/xsp/my.map:249: av_extend(av, $var->size()-1);
./xs/xsp/my.map:259: av_extend(av, $var->size()-1);
./xs/xsp/my.map:269: av_extend(av, $var.size()-1);
./xs/xsp/my.map:279: av_extend(av, $var.size() - 1);
./xs/xsp/my.map:292: av_extend(rangeAV, 2);
./xs/xsp/TriangleMesh.xsp:70: av_extend(vertices, THIS->stl.stats.shared_vertices);
./xs/xsp/TriangleMesh.xsp:74: av_extend(vertex, 2);
./xs/xsp/TriangleMesh.xsp:94: av_extend(facets, THIS->stl.stats.number_of_facets);
./xs/xsp/TriangleMesh.xsp:98: av_extend(facet, 2);
./xs/xsp/TriangleMesh.xsp:115: av_extend(normals, THIS->stl.stats.number_of_facets);
./xs/xsp/TriangleMesh.xsp:119: av_extend(facet, 2);
./xs/xsp/TriangleMesh.xsp:133: av_extend(size, 2);
./xs/xsp/TriangleMesh.xsp:154: av_extend(layers_av, layers.size()-1);
./xs/xsp/TriangleMesh.xsp:157: av_extend(expolygons_av, layers[i].size()-1);
./xs/src/ppport.h:1047:av_extend|||
./xs/src/MultiPoint.cpp:142: av_extend(av, num_points-1);
./xs/src/MultiPoint.cpp:153: av_extend(av, num_points-1);
./xs/src/Line.cpp:155: av_extend(av, 1);
./xs/src/Line.cpp:166: av_extend(av, 1);
./xs/src/ExPolygon.cpp:367: av_extend(av, num_holes); // -1 +1
./xs/src/ExPolygon.cpp:382: av_extend(av, num_holes); // -1 +1
./xs/src/ClipperUtils.cpp:545: av_extend(av, len-1);

http://www.bribes.org/perl/docfr/perlapi.html for av_extend

@swiftgeek
Copy link
Author

my.map:238: av_extend(av, $var.size() == 0 ? 0 : $var.size()-1);
my.map:249: av_extend(av,$var->size() == 0 ? 0 : $var->size()-1);
my.map:259: av_extend(av, $var->size() == 0 ? 0 : $var->size()-1);
my.map:269: av_extend(av, $var.size() == 0 ? 0 : $var.size()-1);
my.map:279: av_extend(av, $var.size() == 0 ? 0 : $var.size()-1);
TriangleMesh.xsp:154: av_extend(layers_av, layers.size() == 0 ? 0 : layers.size()-1);
TriangleMesh.xsp:157: av_extend(expolygons_av, layers[i].size() == 0 ? 0 : layers[i].size()-1);
MultiPoint.cpp:142: av_extend(av, num_points == 0 ? 0 : num_points-1);
MultiPoint.cpp:153: av_extend(av, num_points == 0 ? 0 : num_points-1);
ExPolygon.cpp:367: av_extend(av, num_holes == -1 ? 0 : num_holes); // -1 +1
ExPolygon.cpp:382: av_extend(av, num_holes == -1 ? 0 : num_holes); // -1 +1
ClipperUtils.cpp:545: av_extend(av, len == 0 ? 0 : len-1);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment