summaryrefslogtreecommitdiff
path: root/core/src/fpdfapi
AgeCommit message (Collapse)Author
2015-12-11Fix a regression for parsing '/' - commit a568ff2d was too strict.chromium/2592chromium/2591chromium/2590Lei Zhang
BUG=pdfium:326 R=dml@google.com Review URL: https://codereview.chromium.org/1521543002 .
2015-12-10Fix integer and bounds issues in sycc4{22,44}_to_rgb.Oliver Chang
Also clean up while we're here. BUG=557223 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1512833008 .
2015-12-10Replace several more CFX_MapPtrToPtr with std::set or std::mapTom Sepez
R=thestig@chromium.org Review URL: https://codereview.chromium.org/1520643002 .
2015-12-10Remove CFX_AffineMatrix/CPDF_MatrixTom Sepez
These are synonyms for CFX_Matrix. Nothing but sed and manual deletion of 2 #defines in fpdf_parser.h and fx_coordinates.h R=thestig@chromium.org Review URL: https://codereview.chromium.org/1513363002 .
2015-12-10Cleanup CPDF_DIBSource::LoadColorInfo() and ValidateDictParam().Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1507043004 .
2015-12-09Prevent infinite looping in CPDF_Parser::LoadAllCrossRefV5().Lei Zhang
BUG=pdfium:298 R=weili@chromium.org Review URL: https://codereview.chromium.org/1496703005 .
2015-12-09Get rid of most uses of CFX_PtrArray.Tom Sepez
I didn't go whole hog and replace these with std::vector, but in the mean time, it is silly to cast a typedef for a template instantiated against void* when we can just instantiate the template against the actual type. The ones that remain are actual heterogeneous arrays with wacky casting. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1518593002 .
2015-12-06fix for stream object readingWei Li
Loosen a check for earlier version of PDF files. When the bytes with specified length are followed by 'endstream' keyword, even if there is no EOL marker before the keyword, it signals the end of stream. BUG=551258 R=jun_fang@foxitsoftware.com, tsepez@chromium.org Review URL: https://codereview.chromium.org/1499433002 .
2015-12-04Fix an incorrect check in CPDF_DataAvail::CheckHintTables.Oliver Chang
R=tsepez@chromium.org, jun_fang@foxitsoftware.com BUG=566179 Review URL: https://codereview.chromium.org/1504513002 .
2015-12-01Add basic checking for RebuildCrossRefWei Li
RebuildCrossRef function returns false when we can not find file trailer or any indirect object. This serves as a basic file format checking. BUG=pdfium:215 R=jun_fang@foxitsoftware.com Review URL: https://codereview.chromium.org/1476163002 .
2015-11-25Fix two memory leaks from pdfium_unittestsQin Zhao
- remove redundant alloc in fx_codec_jpx_unittest.cpp - free memory allocated by HexDecode calls in fpdf_parser_decode_unittest.cpp BUG=PDFium:239 R=thestig@chromium.org Review URL: https://codereview.chromium.org/1467183006 .
2015-11-20Change |CCodec_ScanlineDecoder::m_Pitch| to FX_DWORDOliver Chang
This matches the type of the corresponding |CFX_DIBSource::m_Pitch|, where integer overflow is checked for FX_DWORD. This change is propagated to many other places. Also, check for integer overflow in |CCodec_RLScanlineDecoder::Create| during the calculation of |m_Pitch| since it aligns to 4 bytes while overflow was was previously checked without this alignment. R=tsepez@chromium.org, thestig@chromium.org BUG=555784 Review URL: https://codereview.chromium.org/1460033002 .
2015-11-19Cache object numbers in CPDF_Parser::ParseIndirectObject().Lei Zhang
R=jun_fang@foxitsoftware.com, tsepez@chromium.org Review URL: https://codereview.chromium.org/1458633004 .
2015-11-19Add more overrides.Lei Zhang
Using Chromium's clang + build options, there's more override warnings. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1453643002 .
2015-11-16Reland "Cleanup some numeric code.""chromium/2567Dan Sinclair
This reverts commit 0569ab0b11b723d9bca4ddd642b0cf8828c4bdd1. This changes the various comparisons of char >= '0' && char <= '9' and char < '0' || char > '9' to use std::isdigit checks. It also cleans up a handful of hex to digit conversions to call one common method. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1449873003 .
2015-11-12Remove relative includes.Lei Zhang
That refer to parent directories. R=dsinclair@chromium.org Review URL: https://codereview.chromium.org/1434223002 .
2015-11-12Clear decoders after the image decoder in the /Filter array.Oliver Chang
During decoding, when an image decoder is encountered, any subsequent decoders are ignored, but remain in the array. However, later on CPDF_DIBSource::ValidateDictParam expects the image decoder to be the last in the array, causing issues. A check is also added in CPDF_DIBSource::GetScanline to ensure that the calculated pitch value is <= the (4-aligned) pitch value in the cached bitmap to prevent future issues. Also cleans up some NULL usages. BUG=552046 R=jun_fang@foxitsoftware.com, tsepez@chromium.org Review URL: https://codereview.chromium.org/1406943005 .
2015-11-11(Reland) Fix extraction of colour components in ↵Oliver Chang
CPDF_DIBSource::DownSampleScanline32Bit Previously, if |m_bpc| was < 8 (e.g. 4), this function may still try to access the source components as if |m_bpc| == 8. Even when it fell into the codepath that tried to do the right thing in this case, it was wrong. BUG=554151 R=tsepez@chromium.org, thestig@chromium.org Committed: https://pdfium.googlesource.com/pdfium/+/9b99615806e358fdb396d1cb162ee2e69c2a20ec Review URL: https://codereview.chromium.org/1433423002 .
2015-11-11Revert "Fix extraction of colour components in ↵Oliver Chang
CPDF_DIBSource::DownSampleScanline32Bit" This reverts commit 9b99615806e358fdb396d1cb162ee2e69c2a20ec. Broke Windows build. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1437963003 .
2015-11-11Fix extraction of colour components in CPDF_DIBSource::DownSampleScanline32BitOliver Chang
Previously, if |m_bpc| was < 8 (e.g. 4), this function may still try to access the source components as if |m_bpc| == 8. Even when it fell into the codepath that tried to do the right thing in this case, it was wrong. BUG=554151 R=tsepez@chromium.org, thestig@chromium.org Review URL: https://codereview.chromium.org/1433423002 .
2015-11-10Fix CalculatePitch32() issues.Tom Sepez
See bug for details. BUG=pdfium:273 R=thestig@chromium.org Review URL: https://codereview.chromium.org/1432073003 .
2015-11-10Prevent buffer underflow in CPDF_TextObject::CalcPositionDataOliver Chang
R=tsepez@chromium.org BUG=554115 Review URL: https://codereview.chromium.org/1435473004 .
2015-11-10Revert x4 "Cleanup some numeric code."dan sinclair
This reverts commit b27902b8995bb3e003daed6b0811ed746763c68d. Cleanup some numeric code. This changes the various comparisons of char >= '0' && char <= '9' and char < '0' || char > '9' to use std::isdigit checks. It also cleans up a handful of hex to digit conversions to call one common method. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1432973003 .
2015-11-10Cleanup CPDF_Stream:Lei Zhang
- Remove CPDF_Stream::Create() and checks that it might fail. - Remove m_pCryptoHandler that's always a nullptr. - Remove m_FileOffset that's always 0. - Rename file version of InitStream() to InitStreamFromFile(). - Use IsMemoryBased() in more places. R=dsinclair@chromium.org Review URL: https://codereview.chromium.org/1415163009 .
2015-11-10Revert "Revert "Revert "Revert "Cleanup some numeric code.""""dan sinclair
This reverts commit da06e60fb5a095a91c9a4f509466667878624cb3. Cleanup some numeric code. This changes the various comparisons of char >= '0' && char <= '9' and char < '0' || char > '9' to use std::isdigit checks. It also cleans up a handful of hex to digit conversions to call one common method. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1433513002 .
2015-11-10Use unique_ptr and initializer lists in various render files.Lei Zhang
R=dsinclair@chromium.org Review URL: https://codereview.chromium.org/1436573003 .
2015-11-10Remove core/src/fpdfapi/fpdf_font/common.h and use stdint types.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1437603002 .
2015-11-10Fix relative includes within core/Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1427633010 .
2015-11-09Fix a leak in CPDF_Type3Font::LoadChar().Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1408063016 .
2015-11-09Add path service to retrieve test data directory at run time so tests can be ↵Wei Li
run from any directory. Previously the tests which read test files assume the current directory is under pdfium. Running from any other directory will break the build. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1408003014 .
2015-11-09Add some nullptr checks that were missing from commit f7992b39.Lei Zhang
BUG=pdfium:268 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1425293010 .
2015-11-09Fix leaks in CPDF_SyntaxParser::ReadStream.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1419533016 .
2015-11-05Fix all relative includes to third_party.chromium/2560chromium/2559chromium/2558chromium/2557Lei Zhang
- In non-standalone builds, use the provided jpeg library. - Run gn format over all the GN files. - Also roll DEPS for buildtools to c2f2598. BUG=541704 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1425153006 .
2015-11-04Add base test for RebuildCrossRef function.Wei Li
This tests whether RebuildCrossRef could handle well-formatted pdf file. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1409013005 .
2015-11-04Enforce input and output dimensionalities for CPDF_StitchFunc.Oliver Chang
Also cleans up some places in the relevant functions since we're here. BUG=551460 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1421783004 .
2015-11-04Make checkdeps --resolve-dotdot succeed.Lei Zhang
R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1419373005 .
2015-11-04Remove state from RebuildCrossRef state-machine.Dan Sinclair
The state '12' is only used once. This CL folds the contents of state 12 back into the place where we set our state to 12. This works because all state 12 does is decrement the loop counter so we process the same character again and move us to state 0. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1430643007 .
2015-11-03Revert "Revert "Revert "Cleanup some numeric code."""Dan Sinclair
This reverts commit e0e922db5fb77df9a5a9cc802096f484ed21da1c. Broke Windows build. FAILED: ninja -t msvc -e environment.x86 -- "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\core\src\fxcrt\fxcrt.fx_basic_gcc.obj.rsp /c ..\..\core\src\fxcrt\fx_basic_gcc.cpp /Foobj\core\src\fxcrt\fxcrt.fx_basic_gcc.obj /Fdobj\fxcrt.cc.pdb e:\b\build\slave\windows\build\pdfium\core\src\fxcrt\fx_basic_gcc.cpp(28) : error C2220: warning treated as error - no 'object' file generated e:\b\build\slave\windows\build\pdfium\core\src\fxcrt\fx_basic_gcc.cpp(75) : see reference to function template instantiation 'T FXSYS_StrToInt<int32_t,const FX_WCHAR*>(STR_T)' being compiled with [ T=int32_t , STR_T=const FX_WCHAR * ] e:\b\build\slave\windows\build\pdfium\core\src\fxcrt\fx_basic_gcc.cpp(28) : warning C4244: 'argument' : conversion from 'const FX_WCHAR' to 'char', possible loss of data FAILED: ninja -t msvc -e environment.x86 -- "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\core\src\fpdftext\fpdftext.fpdf_text.obj.rsp /c ..\..\core\src\fpdftext\fpdf_text.cpp /Foobj\core\src\fpdftext\fpdftext.fpdf_text.obj /Fdobj\fpdftext.cc.pdb e:\b\build\slave\windows\build\pdfium\core\src\fpdftext\fpdf_text.cpp(439) : error C2039: 'isdigit' : is not a member of 'std' FAILED: ninja -t msvc -e environment.x86 -- "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\core\src\fxcrt\fxcrt.fx_basic_wstring.obj.rsp /c ..\..\core\src\fxcrt\fx_basic_wstring.cpp /Foobj\core\src\fxcrt\fxcrt.fx_basic_wstring.obj /Fdobj\fxcrt.cc.pdb e:\b\build\slave\windows\build\pdfium\core\src\fxcrt\fx_basic_wstring.cpp(973) : error C2220: warning treated as error - no 'object' file generated e:\b\build\slave\windows\build\pdfium\core\src\fxcrt\fx_basic_wstring.cpp(973) : warning C4244: 'argument' : conversion from 'const FX_WCHAR' to 'char', possible loss of data e:\b\build\slave\windows\build\pdfium\core\src\fxcrt\fx_basic_wstring.cpp(981) : warning C4244: 'argument' : conversion from 'const FX_WCHAR' to 'char', possible loss of data FAILED: ninja -t msvc -e environment.x86 -- "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\core\src\fpdftext\fpdftext.fpdf_text_int.obj.rsp /c ..\..\core\src\fpdftext\fpdf_text_int.cpp /Foobj\core\src\fpdftext\fpdftext.fpdf_text_int.obj /Fdobj\fpdftext.cc.pdb e:\b\build\slave\windows\build\pdfium\core\src\fpdftext\fpdf_text_int.cpp(2436) : error C2039: 'isdigit' : is not a member of 'std' e:\b\build\slave\windows\build\pdfium\core\src\fpdftext\fpdf_text_int.cpp(2440) : error C2039: 'isdigit' : is not a member of 'std' ninja: build stopped: subcommand failed. TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1431683008 .
2015-11-03Revert "Revert "Cleanup some numeric code.""Dan Sinclair
This reverts commit 23d576f0b498bd4f37ef2175916223a2e5ea0324. Cleanup some numeric code. This changes the various comparisons of char >= '0' && char <= '9' and char < '0' || char > '9' to use std::isdigit checks. It also cleans up a handful of hex to digit conversions to call one common method. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1405253007 .
2015-11-03Use std::numeric_limits::max() to put in the large position value.Dan Sinclair
This size is different on Windows vs Mac and Linux. Need to use numeric_limits instead of a hard coded value. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1414793010 .
2015-11-03Add test for CPDF_SyntaxParser::ReadHexString.Dan Sinclair
This CL adds tests for the ReadHexString method of the syntax parser. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1433503002 .
2015-11-02Add test for CPDF_StreamParser::ReadHexString.chromium/2555chromium/2554chromium/2553Dan Sinclair
This CL adds a unit test for the ReadHexString method. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1408213008 .
2015-11-02Add tests for CMap_GetCode and CMap_GetCodeRange.Dan Sinclair
This CL adds tests for the CMap_GetCode and CMap_GetCodeRange methods. To do so, it moves the methods to be static private members of CPDF_CMapParser and makes the test class a friend. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1414013005 .
2015-11-02Add a test for the HexDecode method.Dan Sinclair
I moved the declaration to be public, instead of having it implicit in one file and defined in a seperate cpp file. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1410873009 .
2015-11-02Remove _FPDF_ByteStringFromHex as it is unusedDan Sinclair
There are no uses of this method, I also checked the XFA branch and there don't appear to be any uses there either. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1427913006 .
2015-11-02Add test for StringToCode and StringToWideStringDan Sinclair
This CL adds a test case for the StringToCode and StringToWideString methods in fpdf_font.cpp. In order to do so, it moves the methods to be private methods of CPDF_ToUnicodeMap and make the tests friends of the class. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1428593005 .
2015-11-02Use standard true and false to replace 'TRUE' and 'FALSE' in pdfium_testJun Fang
BUG=446715 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/1410073009 .
2015-11-02Support linearized loadingJun Fang
BUG=446715 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1353093003 .
2015-10-29Revert "Cleanup some numeric code."dan sinclair
This reverts commit 589f7e0a57675efce9810c15a3e9b7c49bf0bc90. Broke the build on Mac, unable to find std::isdigit. TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1428853002 .
2015-10-29Cleanup some numeric code.Dan Sinclair
This changes the various comparisons of char >= '0' && char <= '9' and char < '0' || char > '9' to use std::isdigit checks. It also cleans up a handful of hex to digit conversions to call one common method. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1415933005 .