do not return true when no data is read by the stream in Load(wxInputStream,wxAnimationType) overload
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -127,6 +127,7 @@ bool wxAnimation::Load(wxInputStream &stream, wxAnimationType type)
|
|||||||
g_signal_connect(loader, "area-updated", G_CALLBACK(gdk_pixbuf_area_updated), this);
|
g_signal_connect(loader, "area-updated", G_CALLBACK(gdk_pixbuf_area_updated), this);
|
||||||
|
|
||||||
guchar buf[2048];
|
guchar buf[2048];
|
||||||
|
bool data_written = false;
|
||||||
while (stream.IsOk())
|
while (stream.IsOk())
|
||||||
{
|
{
|
||||||
// read a chunk of data
|
// read a chunk of data
|
||||||
@@ -135,10 +136,21 @@ bool wxAnimation::Load(wxInputStream &stream, wxAnimationType type)
|
|||||||
// fetch all data into the loader
|
// fetch all data into the loader
|
||||||
if (!gdk_pixbuf_loader_write(loader, buf, stream.LastRead(), &error))
|
if (!gdk_pixbuf_loader_write(loader, buf, stream.LastRead(), &error))
|
||||||
{
|
{
|
||||||
gdk_pixbuf_loader_close(loader, &error);
|
|
||||||
wxLogDebug(wxT("Could not write to the loader: %s"), error->message);
|
wxLogDebug(wxT("Could not write to the loader: %s"), error->message);
|
||||||
|
|
||||||
|
// gdk_pixbuf_loader_close wants the GError == NULL; reset it:
|
||||||
|
error = NULL;
|
||||||
|
gdk_pixbuf_loader_close(loader, &error);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data_written = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!data_written)
|
||||||
|
{
|
||||||
|
wxLogDebug("Could not read data from the stream...");
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// load complete
|
// load complete
|
||||||
@@ -149,7 +161,7 @@ bool wxAnimation::Load(wxInputStream &stream, wxAnimationType type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// wait until we get the last area_updated signal
|
// wait until we get the last area_updated signal
|
||||||
return true;
|
return data_written;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxImage wxAnimation::GetFrame(unsigned int WXUNUSED(frame)) const
|
wxImage wxAnimation::GetFrame(unsigned int WXUNUSED(frame)) const
|
||||||
|
Reference in New Issue
Block a user