summaryrefslogtreecommitdiff
path: root/core
AgeCommit message (Collapse)Author
2015-10-19Sanity check the values of TRUE and FALSE.Lei Zhang
Get rid of cond ? TRUE : FALSE. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1405723003 .
2015-10-19Remove some checks for object creation failures. They cannot fail.Lei Zhang
Also reduce nesting in if statements, remove CFX_SmartPointer, and use more unique_ptrs. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1393303004 .
2015-10-19Add FPDFAPIJPEG_ prefix to more libjpeg functionsTom Sepez
Original patch by Evangelos Foutras. Chromium built with use_system_libjpeg=1 can mistakenly try to use symbols exported by the libjpeg library that's bundled with pdfium. These name conflicts result in failure to encode the contents of a canvas element using toDataURL('image/jpeg'). BUG=505226 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1409243004 .
2015-10-19Unrevert commit a398ca6 and apply the proper fix.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1401493002 .
2015-10-16Don't bother passing -1 as the length to the CFX_ByteString ctor.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1406363002 .
2015-10-16Declare PDF_GetStandardFontName() in the header.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1410043003 .
2015-10-16fxcrt convergence - master sideTom Sepez
R=thestig@chromium.org Review URL: https://codereview.chromium.org/1410933002 .
2015-10-16Loosen checking on the bytes following 'stream'chromium/2540chromium/2539chromium/2538Jun Fang
PDF specs say that end of line markers shall follow the keyword "stream". But a white space before end of line markers follows this keyword in the test pdf files. BUG=543018 R=thestig@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/1401923005 .
2015-10-15Plug a leak in CPDF_StreamParser::ReadInlineStreamOliver Chang
R=thestig@chromium.org, tsepez@chromium.org BUG=pdfium:212 Review URL: https://codereview.chromium.org/1405203002 .
2015-10-15Return result of GetRBG instead of TRUEdan sinclair
Propagate the return value of GetRBG to the callers instead of forcing the return of TRUE. BUG=pdfium:44 R=thestig@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/1398633008 .
2015-10-15Fix layering violation in CPDF_Document::FromFPDFDocument().Tom Sepez
Make this a function in the fpdfsdk/ layer, rather than a method in the core/ layer. Nothing in core should know about public FPDF types. BUG=pdfium:217 R=thestig@chromium.org Review URL: https://codereview.chromium.org/1396283006 .
2015-10-14Introduce CPDF_Document::FromFPDFDocument().Tom Sepez
This will be used to abstract one major difference between master and XFA, namely that the CPDF_Document is not a direct cast in XFA. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1395493007 .
2015-10-13wstring allocations waste up to 7 wasted bytes.Tom Sepez
Consequence of having the same code in two places; fx_basic_bstring.cpp is correct, but fx_basic_wstring.cpp is missing one small change. Noticed while working on 542403, but this will not fix that issue. It is just a space savings. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1399983003 .
2015-10-09Sanitize CJBig2_SymbolDict's memory usage.chromium/2534chromium/2533chromium/2532Lei Zhang
- Use std::vector<JBig2ArithCtx> instead of storing pointers to arrays. - Make CJBig2_SymbolDict's members private with accessors. - Use std::vector<JBig2ArithCtx> in related places. - Steal Chromium's vector_as_array() and use it as an adaptor as needed. BUG=514891 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1388203003 .
2015-10-09Fix a bad refactoring error from commit 8a9ce57.Lei Zhang
BUG=541323 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1400773002 .
2015-10-09Fix a compiling error on MacJun Fang
BUG=497357 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1395493003 .
2015-10-09Fix heap-buffer-overflow in color_sycc_to_rgbJun Fang
It's a bug existing in the conversion from YUV420 to RGB. For YUV 420 format, four pixels have 4 Y but only one U and one V. In some cases, there are odd columns or lines in some images. The pixels on last line or column may have Y but no U or V data. For this case, We shall extend U or V using the data on previous column or line. BUG=497357 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1342683002 .
2015-10-08Minimal revert from commit d03ba8d.Lei Zhang
The values that were changed to size_t can go negative. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1400723002 .
2015-10-08Fix a bunch of sign mismatch warnings.Lei Zhang
Also remove some gotos and move code into an anonymous namespace. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1356373003 .
2015-10-08Fix a malloc/delete mismatch introduced in commit 8a9ce57.Lei Zhang
Just get rid of the malloc altogether and use CJBig2_List instead. BUG=540873 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1394933002 .
2015-10-09Various changes to JBig2 cache:David Lattimore
- Makes the cache be per-document - Keys the cache on ObjNum and stream offset instead of keying on a pointer to the data (which can result in false cache hits). - Makes it so the cache is only used for the globals stream. - Reenable the cache. R=thestig@chromium.org BUG=pdfium:207 Review URL: https://codereview.chromium.org/1380243004 .
2015-10-08Put CJBig2_SymbolDict's images in a CJBig2_List container.Lei Zhang
Also mark it private. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1395613003 .
2015-10-08Relax the check on 0 length streams.chromium/2531Lei Zhang
CPDF_SyntaxParser::ReadStream() originally created stream objects when the length is 0. Commit 2526930 tightened the constraint and returned NULL. This has some adverse affects, as seen in Chromium's print preview of PDFs. Instead, relax the constraint a little so when the length is 0, return a CPDF_Stream with NULL data and size 0. BUG=531835 Review URL: https://codereview.chromium.org/1394743002 .
2015-10-08Remove some dead code from CCodec_Jbig2Module. Variable was only ever set to ↵David Lattimore
false. R=thestig@chromium.org BUG= Review URL: https://codereview.chromium.org/1393153002 .
2015-10-07Stop inlining CJBig2_BitStream.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1393823002 .
2015-10-07Fix the Windows build after commit 8a9ce57.Lei Zhang
TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1396533002 .
2015-10-07Remove gotos in JBig2 code.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1382613003 .
2015-10-07Fix include paths for fx_system.hDavid Lattimore
R=thestig@chromium.org BUG= Review URL: https://codereview.chromium.org/1390863002 .
2015-10-05Fix regression in JBIG2 decoding from commit ce37d73.chromium/2530chromium/2529Lei Zhang
many callers can tolerate CJBig2_ArithIntDecoder::decode() OOB failure. BUG=539749, pdfium:209 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1384663007 .
2015-10-05Original patch by forshaw.Tom Sepez
Added a fallback Win32 font information class for win32k lockdown. This is to support running PDFIUM within the Win32k lockdown by removing dependancies on USER32/GDI for the font information code. It falls back to using a freetype/directory enumeration implementation if it detects the win32k system calls have been disabled by policy. BUG=523278 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1306883002 .
2015-10-05Disable JBIG2 cache; prevent data corruption - try 2.Lei Zhang
Also change CJBig2_SymbolDict::DeepCopy() to return a unique_ptr to prevent a potential leak if the cache size was 0. BUG=pdfium:207 R=tsepez@chromium.org, jbreiden@google.com Review URL: https://codereview.chromium.org/1374633004 .
2015-10-03Fix NULL pointer dereference in CPDF_InterForm.Lei Zhang
BUG=537772 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1387703002 .
2015-10-02Get rid of gotos in CPDF_SyntaxParser and FlateUncompress().Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1360103002 .
2015-10-02Prevent divide by zeros in CJBig2_GSIDProc::decode_MMR().Lei Zhang
Check the image size before attempting to decode. BUG=538103 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1377493005 .
2015-10-02Fix a leak in PDF_DataDecode() on failure.Lei Zhang
Found using the test examples from https://crbug.com/537780 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1376413003 .
2015-10-02Turn a couple functions that always return true to return void.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1386463003 .
2015-10-02Fix PNG decoding divide by zero error due to zero row count.Lei Zhang
BUG=537790 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1379243002 .
2015-10-01Disable JBIG2 cache; prevent data corruptionLei Zhang
BUG=pdfium:207 Original author: jbreiden@google.com Original CL: http://codereview.chromium.org/1362133003/ R=jbreiden@google.com Review URL: https://codereview.chromium.org/1382073002 .
2015-10-01Clean up some image decoder classes:Lei Zhang
- Use std::vector<uint8_t> instead of raw uint8_t* - Make ICodec_ScanlineDecoder::GetScanline() return const uint8_t* - Add FxFreeDeleter, use it in CCodec_ImageDataCache. - Make CCodec_ImageDataCache encapsulate its data members. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1361053002 .
2015-10-01Cleanup JBig2_ArithIntDecoder.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1359013003 .
2015-09-29Cleanup CJBig2_ArithDecoder.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1368153003 .
2015-09-29Fix blank page issue caused by too strict correction on bpcchromium/2523Jun Fang
For bit per component (bpc), PDF spec mentions that a RunLengthDecode or DCTDecode filter shall always deliver 8-bit samples. However, some PDF files don't follow this rule. We can find that filter is RunLengthDecode but bpc is 1 in the provided test file. In this case, pdfium will correct bpc to 8 but the actual bpc is 1. It causes a failure because the data is much more than the expected. To handle this case, pdfium doesn't correct bpc to 8 when the original bpc is 1. BUG=512557 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1328213002 .
2015-09-28Cleanup some fx_codec_fax.cpp code.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1367633005 .
2015-09-25Revert "Revert "Fix the issue that pdfium swallows 'fi' or 'ff' in some pdf ↵Jun Fang
files"" This reverts commit fa9756f77ad6145940d3dc697814b84f5755ae17. TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1307353005/
2015-09-25Revert "Fix the issue that pdfium swallows 'fi' or 'ff' in some pdf files"Jun Fang
This reverts commit 9bd18183ba8210c91d71c3060146235750a4c71c.
2015-09-25Fix the issue that pdfium swallows 'fi' or 'ff' in some pdf filesJun Fang
Pdfium swallows 'fi' or 'ff' in some tested files because it doesn't load the embedded font file correctly. The root cause is that there is incorrect keyword like 'ngendstream' in the stream of the embedded font file. Pdfium tries to find another correct keyword but uses wrong offset rather than accumulated offset. BUG=524043 R=thestig@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/1307353005 .
2015-09-24Fix a leak in CJBig2_Context.chromium/2520Lei Zhang
- Remove dead code - Use unique_ptr BUG=pdfium:202 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1365903002 .
2015-09-24Split up JBig2_GeneralDecoder.cpp.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1359233002 .
2015-09-23Fix a leak in CJBig2_CachePair.Lei Zhang
R=jbreiden@google.com Review URL: https://codereview.chromium.org/1346043003 .
2015-09-22Change nonstd::unique_ptr to take a custom deleter.Lei Zhang
Code is mostly stolen from Chromium's scoped_ptr. - Add unit tests. - Use this to fix a leak. BUG=chromium:531408 R=jyasskin@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/1351383004 .