sub _valid_image {
my ($self, $method) = @_;
+ ref $self
+ or return Imager->_set_error("$method needs an image object");
+
$self->{IMG} && Scalar::Util::blessed($self->{IMG}) and return 1;
my $msg = $self->{IMG} ? "images do not cross threads" : "empty input image";
# translate to ImgRaw
my $index = 1;
for my $img (@images) {
+ unless (ref $img && Scalar::Util::blessed($img) && $img->isa("Imager")) {
+ $class->_set_error("write_multi: image $index is not an Imager image object");
+ return;
+ }
unless ($img->_valid_image("write_multi")) {
$class->_set_error($img->errstr . " (image $index)");
return;
# the file format
use strict;
-use Test::More tests => 89;
+use Test::More tests => 93;
use Imager;
-d "testout" or mkdir "testout";
ok(!Imager->write_multi({ data => \$data, type => "pnm" }, $good, $empty),
"fail to write_multi an empty image");
is(Imager->errstr, "write_multi: empty input image (image 2)");
+ Imager->_set_error("");
+ my $not_imager = bless {}, "Foo";
+ ok(!Imager->write_multi({ data => \$data, type => "pnm" }, $not_imager),
+ "fail to write_multi() a non-Imager object");
+ is(Imager->errstr, "write_multi: image 1 is not an Imager image object",
+ "check message");
+ ok(!Imager->write_multi({ data => \$data, type => "pnm" }, "Imager"),
+ "fail to write_multi() 'Imager' string");
+ is(Imager->errstr, "write_multi: image 1 is not an Imager image object",
+ "check message");
}
# check file type probe