Bugfix: lack of strong type checking when passing arrayref objects to XS caused random lack of infill. Now added strong type checking for all XS entities. Also fixes a potential issue with bridges caused by the same error. #1652

Conflicts:

	lib/Slic3r/Layer/Region.pm
This commit is contained in:
Alessandro Ranellucci 2014-01-12 00:54:10 +01:00
parent e68cbede6e
commit a51743a8c1
9 changed files with 31 additions and 5 deletions

View file

@ -88,6 +88,8 @@ void
Line::from_SV_check(SV* line_sv)
{
if (sv_isobject(line_sv) && (SvTYPE(SvRV(line_sv)) == SVt_PVMG)) {
if (!sv_isa(line_sv, "Slic3r::Line") && !sv_isa(line_sv, "Slic3r::Line::Ref"))
CONFESS("Not a valid Slic3r::Line object");
*this = *(Line*)SvIV((SV*)SvRV( line_sv ));
} else {
this->from_SV(line_sv);