summaryrefslogtreecommitdiff
path: root/xfa/fxfa/parser
AgeCommit message (Collapse)Author
2016-07-07Break xfa_basic_data up to smaller filesdsinclair
xfa_basic_data is a large (>7k lines) file that is difficult to navigate. This CL breaks the file up into smaller files more logical files. Review-Url: https://codereview.chromium.org/2123343002
2016-07-01Clean up parts of CPDF_CIDFont.thestig
Also remove some if statements that are always true/false. Review-Url: https://codereview.chromium.org/2094073002
2016-06-30Convert some methods to std::lower_bound and std::find_if.dsinclair
This CL updates XFA_GetElementTypeForName() to use std::lower_bound instead of a custom binary search implementation to find the element info. XFA_GetPropertyOfElement() is changed to use std::find_if. Previously it was using a custom binary search implementation. Changing this to non-binary search will allow having the items in g_XFAElementPropertyData be out of XFA_Element order. There are at most 19 items that need to be searched and often 1 or 2. Review-Url: https://codereview.chromium.org/2107093004
2016-06-28Change CXFA_Node::GetClassName to returnchromium/2786chromium/2784dsinclair
CXFA_Node::GetClassName currently takes an out parameter and returns void. This CL updates the signature to return the value and require no parameters. Review-Url: https://codereview.chromium.org/2104963002
2016-06-23Use some FXSYS methods instead of duplicatingdsinclair
This CL uses the FXSYS_isDecimalDigit in place of a few custom IsDigit methods. It also creates an iswspace and some fractional math helper methods to share some code. Review-Url: https://codereview.chromium.org/2094453004
2016-06-23Pass needed value to CXFA_Node constructordsinclair
Currently the CXFA_Node constructor will call out to lookup the object type for a given element type. There is only one called of this constructor and it already has the object type so just pass it through instead of getting the element data a second time. Review-Url: https://codereview.chromium.org/2092853002
2016-06-23Remove NULL in xfa/dsinclair
This CL converts all NULL's to nullptr. All instances of comparison to nullptr have been removed. Review-Url: https://codereview.chromium.org/2095653002
2016-06-23Change XFA_GetElementByName to XFA_GetElementTypeForNamedsinclair
This method was only ever used to get the XFA_Element type for the given element name. Changed to make the signature match the usage. Review-Url: https://codereview.chromium.org/2095733002
2016-06-23Cleanup some variable namings.chromium/2778dsinclair
This CL cleans up some variable namings from the XFA_Element enum change. Review-Url: https://codereview.chromium.org/2093663002
2016-06-23Remove IsOrdinaryList; rename to OrdinaryList to Listdsinclair
IsOrdinaryList is no longer used, removed. Rename list item as Ordinary doesn't hold any meaning. Review-Url: https://codereview.chromium.org/2079393006
2016-06-23Remove CXFA_OrdinaryObject classdsinclair
The CXFA_OrdinaryObject class no longer has any functionality but is just wraps CXFA_Object and sets the object type for the sub classes. This Cl removes the class and has the subclass set the object type themselves. This CL also renames the OrdinaryObject type to just Object. Review-Url: https://codereview.chromium.org/2082343003
2016-06-22Update GetClassID to GetElementTypedsinclair
The GetClassID method actually returns the XFA_Element, change the name of the method to be more suggestive of the return value. The GetClassID was sort-of polymorphich and would call down to subclasses. This CL changes the data to be stored on the CXFA_Object class and just returns what is set. The values are set in the constructor as needed. Review-Url: https://codereview.chromium.org/2082573007
2016-06-22Remove unused GetScriptObjHash().dsinclair
Method is never called, remove it and the data variable it uses as it will no longer be used. Review-Url: https://codereview.chromium.org/2088173003
2016-06-21Convert XFA_ELEMENT to an enum classdsinclair
This CL changes XFA_ELEMENT From an enum to an enum class. The type name was updated to XFA_Element. Review-Url: https://codereview.chromium.org/2089443002
2016-06-20Change func(void) to func()weili
Since PDFium is compiled as C++ code, the void keyword is not needed. BUG=pdfium:519 Review-Url: https://codereview.chromium.org/2084603003
2016-06-20Split the XFA_OBJECTTYPE enum into two parts.dsinclair
Currently the object type and the node flags are both mixed into the single XFA_OBJECTTYPE_* enum. These two things are un-related and should not share a single type. This Cl creates an XFA_ObjectType enum class and a XFA_NodeFlag enum to hold the two types. Accessors are added to determine if the flags are set (or called where they already existed. Review-Url: https://codereview.chromium.org/2083453003
2016-06-16Remove unused XFA_GetElementChildren.dsinclair
This CL removes the method and the backing data. Review-Url: https://codereview.chromium.org/2079493002
2016-06-16Make code compile with clang_use_chrome_plugin (part V)chromium/2770weili
This change mainly contains files in xfa/fxfa directory. This is part of the efforts to make PDFium code compilable by Clang chromium style plugins. The changes are mainly the following: -- move inline constructor/destructor of complex class/struct out-of-line; -- add constructor/destructor of complex class/struct if not explicitly defined; -- add explicit out-of-line copy constructor when needed; -- move inline virtual functions out-of-line; -- Properly mark virtual functions with 'override'; -- some minor cleanups; BUG=pdfium:469 Review-Url: https://codereview.chromium.org/2071683002
2016-06-16Cleanup XML parser code.dsinclair
This Cl removes the CFDE_XMLSAXParser and CFDE_XMLDOMParser along with the ::LoadXML() method which would create them, it was never called. It also cleans up the use of virtual in the various XML classes. Review-Url: https://codereview.chromium.org/2067253002
2016-06-15Make code compile with clang_use_chrome_plugin (part IV)weili
This change mainly contains files in fpdfsdk/ directory. This is part of the efforts to make PDFium code compilable by Clang chromium style plugins. The changes are mainly the following: -- move inline constructor/destructor of complex class/struct out-of-line; -- add constructor/destructor of complex class/struct if not explicitly defined; -- add explicit out-of-line copy constructor when needed; -- move inline virtual functions out-of-line; -- Properly mark virtual functions with 'override'; -- some minor cleanups plus removing an unused file and splitting cxfa_eventparam out from fxfa.h BUG=pdfium:469 Review-Url: https://codereview.chromium.org/2062313002
2016-06-14Cleanup ownership in CXFA_ScriptContext.dsinclair
This Cl substitutes some unique_ptrs for various bits of manual memory management in CXFA_ScriptContext. Review-Url: https://codereview.chromium.org/2062113002
2016-06-14Add fuzzer for FDE CSS syntax parser.dsinclair
This CL adds a fuzzer for the CSS Syntax parser in XFA. BUG=chromium:587126 Review-Url: https://codereview.chromium.org/2068513002
2016-06-09Remove more casts, part 7.tsepez
Replacing a void* member in CFX_SAXItem saves lots of casts. Review-Url: https://codereview.chromium.org/2051233002
2016-06-09Move xfa/fxjse/ to fxjse/dsinclair
This makes it clear that fxjse/ is a standalone component and should not be entangled with other xfa/ components. BUG=pdfium:506 Review-Url: https://codereview.chromium.org/2056663004
2016-06-09Change CFXJSE_Context::GetGlobalObject to returndsinclair
This Cl changes CFXJSE_Context::GetGlobalObject to return a std::unique_ptr<CFXJSE_Value> instead of accepting a CFXJSE_Value out parameter. All usages created the CFXJSE_Value with the same runtime as the caller. Review-Url: https://codereview.chromium.org/2056733003
2016-06-09Convert CFXJSE_Value::ToString to return.dsinclair
ThiS Cl updates CFXJSE_Value::ToString() to return a CFX_ByteString instead of taking an out parameter. It also adds a ToStringC() and ToWideString() to hide the common conversions that are done on the string value. Review-Url: https://codereview.chromium.org/2044293004
2016-06-09Use static_cast<CXFA_WidgetAcc*> in xfa.tsepez
Remove a few other unused casts, simplify. Review-Url: https://codereview.chromium.org/2052593003
2016-06-08Remove more FXJSE c-method wrappers.dsinclair
This Cl cleans up a bunch of the FXJSE_* methods and moves others into the classes where they most make sense. Review-Url: https://codereview.chromium.org/2045883004
2016-06-07Remove various FXJSE Value methods.dsinclair
This CL removes the FXJSE_Value_Set*, FXJSE_Value_To*, FXJSE_Value_Get* and FXJSE_Value_Delete* methods. Review-Url: https://codereview.chromium.org/2043153002
2016-06-07Remove casts to same type in xfa_script_imp.cpptsepez
Review-Url: https://codereview.chromium.org/2046133002
2016-06-07Get rid of NULLs in core/thestig
Review-Url: https://codereview.chromium.org/2032613003
2016-06-02Remove FXJSE_Value_ToObject and call methods directlydsinclair
This Cl removes the global FXJSE_Value_ToObject method and adds individual methods on CXFA_Value to do the needed conversions. Review-Url: https://codereview.chromium.org/2026993003
2016-06-02Fix all the code which has duplicate variable declarationsweili
When there are duplicate variable declarations, the inner names shadow the outter ones. This is error prone and harder to read. Remove all the instances found by /analyze. BUG=chromium:613623, chromium:427616 Review-Url: https://codereview.chromium.org/2027273002
2016-06-02Change ThrowScriptErrorMessage() to just ThrowException().dsinclair
Shorter and easier to remember. Review-Url: https://codereview.chromium.org/2029043002
2016-06-01Don't use array for only one compatible mode scripttsepez
Also, don't invent an enum that has one possible value that is always set. Review-Url: https://codereview.chromium.org/2028343002
2016-06-01Clean up part of CXFA_Node classweili
Mainly clean up Script_NodeClass_Xxx() functions. There are no behavior or API changes. The clean up mainly includes moving static functions into namespace, remove unnecessary conditions or braces, changing NULL->nullptr and local FX_BOOL->bool. Review-Url: https://codereview.chromium.org/2018733002
2016-06-01Remove XFA_HFM2JSCONTEXT.dsinclair
This CL removes XFA_HFM2JSCONTEXT and the supporting code. XFA_HFM2JSCONTEXT was replaced by CXFA_FM2JSContext. The translate method was moved to CXFA_FM2JSContext. Review-Url: https://codereview.chromium.org/2024833003
2016-05-31Replace void* with CFXJSE_HostObect and make wrapped objects inherit from ittsepez
This will avoid a re-occurrence of BUG 613607 should someone again optimize away CXFA_Object's virtual dtor. Review-Url: https://codereview.chromium.org/2019333006
2016-05-31xfa_fm2jscontext formatting and cleanup - pt Idsinclair
Review-Url: https://codereview.chromium.org/2025723002
2016-05-31Replace CFXJSE_Value create/destroy with new and delete.dsinclair
In most cases, the destroy calls were removed and the object wrapped in a unique_ptr. Review-Url: https://codereview.chromium.org/2014323003
2016-05-27Workaround dubious casting between CXFA_Object and void* in FXJSEtsepez
This is just a crock to get things working until we fix the underlying issue. When there's single-inheritance, it may often work in practice to C-style (reinterpret) cast a Derived* ptr to void* and then back to a Base* ptr. One place where this blows up is if Derived has virtual functions but Base does not, in which case the world will be offset by the size of a vtable ptr. Because of the use of void* types in FXJSE, the above was happening when setting a CXFA_ThisProxy (Derived, virtual) to be a global object (void*). This would then be cast back to a CFXA_Object (Base, non-virtual) and chaos is ensured. Not sure how far back this goes. Along the way, pick up some tidying which was necessary for simplicity while tracking this down. BUG=613607 Review-Url: https://codereview.chromium.org/2015143005
2016-05-26Fix MSVC C4800 build warnings.thestig
TBR=weili@chromium.org Review-Url: https://codereview.chromium.org/2017863002
2016-05-26Make additional FXJSE_CLASS_DESCRIPTORS constanttsepez
Also, no need to track these in the contexts since they are global. Review-Url: https://codereview.chromium.org/2014363002
2016-05-26Rename FXJSE_CLASS to avoid confusion with CFXJSE_CLASStsepez
BUG= Review-Url: https://codereview.chromium.org/2010013003
2016-05-26Enable chromium_code standard for XFA codeweili
Clean up the left code which causes warnings. Enable using chromium_code for XFA compilation, also re-enable all the msvs warning flags except 4267 (same as the main pdfium code). BUG=pdfium:29,pdfium:475 Review-Url: https://codereview.chromium.org/2009813004
2016-05-26Remove FXJSE_HOBJECT and FXJSE_HVALUE for CFXJSE_Value*dsinclair
This CL replaces FXJSE_HOBJECT and FXJSE_HVALUE with the concrete CFXJSE_Value* type. All variables are renamed to match. Review-Url: https://codereview.chromium.org/2012253002
2016-05-26Replace FXJSE_HCLASS with CFXJSE_Class*dsinclair
This CL removes FXJSE_HCLASS and replaces with CFXJSE_Class*. All variables have been updated to the new type. Review-Url: https://codereview.chromium.org/2014213002
2016-05-26Replace FXJSE_HCONTEXT with CFXJSE_Context*dsinclair
This Cl removes FXJSE_HCONTEXT and replaces it with the concrete CFXJSE_Context. All varibles have been updated as well to match the new type. Review-Url: https://codereview.chromium.org/2013963005
2016-05-26Revert of Remove parameters which are always null (patchset #1 id:1 of ↵dsinclair
https://codereview.chromium.org/2009413002/ ) Reason for revert: Suspect that the lack of this parameter being passed accurately to GetObject is leading to https://bugs.chromium.org/p/chromium/issues/detail?id=613607, and that the right fix will be to pass it. Original issue's description: > Remove parameters which are always null > > These parameters are never set, remove them and their supporting code. > > Committed: https://pdfium.googlesource.com/pdfium/+/818e1900a3811e1bde1e594e4966db612f845966 TBR=tsepez@chromium.org,thestig@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2014863002
2016-05-25Remove parameters which are always nulldsinclair
These parameters are never set, remove them and their supporting code. Review-Url: https://codereview.chromium.org/2009413002