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

This commit is contained in:
Alessandro Ranellucci 2014-01-12 00:46:23 +01:00
parent 130e8dd8e7
commit a64f7aa8df
8 changed files with 30 additions and 4 deletions

View file

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