Closed
Bug 100470
Opened 23 years ago
Closed 23 years ago
GIF decoder should properly return errors decoding
Categories
(Core :: Graphics: ImageLib, defect, P4)
Core
Graphics: ImageLib
Tracking
()
RESOLVED
FIXED
mozilla0.9.9
People
(Reporter: pavlov, Assigned: pavlov)
References
Details
Attachments
(1 file, 3 obsolete files)
24.42 KB,
patch
|
bryner
:
review+
mscott
:
superreview+
|
Details | Diff | Splinter Review |
the GIF decoder needs to return error codes from WriteFrom so that bad GIFs get properly booted from the cache, we don't waste time downloading them, etc.
Assignee | ||
Comment 1•23 years ago
|
||
Assignee | ||
Comment 2•23 years ago
|
||
saari: can you r= it
Status: NEW → ASSIGNED
Priority: -- → P2
Target Milestone: --- → mozilla0.9.5
Comment 3•23 years ago
|
||
Comment on attachment 49873 [details] [diff] [review] Properly hand back errors plus some code cleanup r=jag
Attachment #49873 -
Flags: review+
Comment 4•23 years ago
|
||
Comment on attachment 49873 [details] [diff] [review] Properly hand back errors plus some code cleanup ok, r=saari
Comment on attachment 49873 [details] [diff] [review] Properly hand back errors plus some code cleanup > if (gs->gathered < max) >- return 1; /* Let imglib generic code decide */ >+ return PR_TRUE; /* Let imglib generic code decide */ > else >- return 0; /* No more data until timeout expires */ >+ return PR_FALSE; /* No more data until timeout expires */ Else after return: that's a paddling! >+ >+#if 0 > if (gs->destroy_pending && > ((state == gif_done) || (state == gif_error) || (state == gif_oom))) { > >@@ -635,6 +631,7 @@ > // ic->imgdcb->ImgDCBHaveImageAll(); > // XXX: Do Have all callback > } >+#endif Is this code coming back in the next few days? If not, please just remove it rather than #defining it out. >+static PRStatus > gif_clear_screen(gif_struct *gs) > { ... >- return NS_ERROR_FAILURE; // XXX: should be out of mem error >+ return PR_FAILURE; Why PRStatus and not PRBool? Why not nsresult and NS_ERROR_OUT_OF_MEMORY? > >+ >+ > // XXX pav this code doesn't actually get called does it ? > >+ >+ Why the bonus whitespace? >+#if 0 >+ // XXX handle colormap stuff >+ > //cmap->map = gs->is_local_colormap_defined ? > // gs->local_colormap : gs->global_colormap; > >@@ -848,9 +848,10 @@ > // return MK_IMAGE_LOSSAGE; > //} > } >+#endif Again with the #if 0! > #endif > #endif /* M12N */ (We still have M12N defines in here?) >+#if 0 > if (gs->images_decoded == 0) { > // XXX: do image size callback > //if(ic->imgdcb){ >@@ -1330,9 +1308,9 @@ > // break; > //} > } >+#endif Etc. >+ if (NULL == BlockAllocCat(hold, gs->gathered, >+ (char*)p, >+ gather_remaining)) { >+ gs->state = gif_oom; >+ break; >+ } Explicit compare against NULL seems out of character for this file. > //ILTRACE(1,("il:gif: reached oom state")); >- return NS_ERROR_FAILURE; // XXX should be out of mem error >+ return PR_FAILURE; > break; Again: why not nsresult and NS_ERROR_OUT_OF_MEMORY? >- GIFInit( >- mGIFStruct, >+ GIFInit(mGIFStruct, > this, > NewPixmap, > BeginGIF, Underindented parameters (and why not put them on the same line?). >- NS_METHOD ProcessData(unsigned char *data, PRUint32 count); >+ nsresult ProcessData(unsigned char *data, PRUint32 count, PRUint32 *writeCount); > > NS_METHOD FlushImageData(); You don't love NS_METHOD? What about FlushImageData?
Assignee | ||
Updated•23 years ago
|
Target Milestone: mozilla0.9.5 → mozilla0.9.6
0.9.6 is gone. Pav is this going to make it for 0.9.7? Seems like it just need a r/sr again with shaver's suggestions...?
Target Milestone: mozilla0.9.6 → mozilla0.9.7
Assignee | ||
Updated•23 years ago
|
Priority: P2 → P4
Target Milestone: mozilla0.9.7 → mozilla0.9.8
Assignee | ||
Updated•23 years ago
|
Target Milestone: mozilla0.9.8 → mozilla0.9.9
Assignee | ||
Comment 7•23 years ago
|
||
Newer/cleaner patch for handing back errors. diff -uw to avoid the numerous lines of reindenting 2 spaces to match the rest of the 4 space'd file.
Attachment #49873 -
Attachment is obsolete: true
Assignee | ||
Comment 8•23 years ago
|
||
Comment on attachment 65679 [details] [diff] [review] New patch to cleanup stuff and properly hand back errors er, this patch is backwards.
Attachment #65679 -
Attachment is obsolete: true
Assignee | ||
Comment 9•23 years ago
|
||
Assignee | ||
Comment 10•23 years ago
|
||
Attachment #65681 -
Attachment is obsolete: true
Comment 11•23 years ago
|
||
Comment on attachment 66353 [details] [diff] [review] merged-to-the-tip r=bryner
Attachment #66353 -
Flags: review+
Comment 12•23 years ago
|
||
Comment on attachment 66353 [details] [diff] [review] merged-to-the-tip sr=mscott don't you want i to be a PRIn32 or a PRUint32 instead of a raw "int"? - for (i=0; i < gs->global_colormap_size; i++, map++) + for (int i=0; i < gs->global_colormap_size; i++, map++)
Attachment #66353 -
Flags: superreview+
Assignee | ||
Comment 13•23 years ago
|
||
fixed
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•