wxImageHandler * pHandler = FindHandler(ext, -1);
if (pHandler)
{
- SaveFile(filename, pHandler->GetType());
- return true;
+ return SaveFile(filename, pHandler->GetType());
}
wxLogError(_("Can't save image to file '%s': unknown extension."), filename.c_str());
if ( type == wxBITMAP_TYPE_ANY )
{
- wxList &list=GetHandlers();
+ const wxList& list = GetHandlers();
- for (wxList::compatibility_iterator node = list.GetFirst(); node; node = node->GetNext())
+ for ( wxList::compatibility_iterator node = list.GetFirst();
+ node;
+ node = node->GetNext() )
{
- handler=(wxImageHandler*)node->GetData();
+ handler = (wxImageHandler*)node->GetData();
if ( handler->CanRead(stream) )
- return handler->GetImageCount(stream);
+ {
+ const int count = handler->GetImageCount(stream);
+ if ( count >= 0 )
+ return count;
+ }
}
if ( type == wxBITMAP_TYPE_ANY )
{
- wxList &list=GetHandlers();
-
- for ( wxList::compatibility_iterator node = list.GetFirst(); node; node = node->GetNext() )
+ const wxList& list = GetHandlers();
+ for ( wxList::compatibility_iterator node = list.GetFirst();
+ node;
+ node = node->GetNext() )
{
- handler=(wxImageHandler*)node->GetData();
- if ( handler->CanRead(stream) )
- return handler->LoadFile(this, stream, true/*verbose*/, index);
+ handler = (wxImageHandler*)node->GetData();
+ if ( handler->CanRead(stream) &&
+ handler->LoadFile(this, stream, true/*verbose*/, index) )
+ {
+ return true;
+ }
}
wxLogWarning( _("No handler found for image type.") );
+
return false;
}