This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch compilers-101 in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 02ec9762005bd0f2f2048ddabf03e429de7abb17 Author: Pedro Giffuni <[email protected]> AuthorDate: Sun Nov 1 18:23:19 2026 -0500 C++11/Java 8 modernization: skeletonmaker, segmenttree, l10ntools, hash_map/unary_function cleanup --- main/l10ntools/source/filter/merge/Merger.java | 12 ++--- .../source/filter/utils/ConfigHelper.java | 24 ++++----- main/l10ntools/source/filter/utils/XMLHelper.java | 27 +++++----- main/sc/inc/segmenttree.hxx | 3 ++ main/sc/source/core/data/segmenttree.cxx | 21 ++++++++ main/sfx2/source/dialog/filtergrouping.cxx | 2 +- .../source/skeletonmaker/cpptypemaker.cxx | 6 +-- .../source/skeletonmaker/javacompskeleton.cxx | 58 +++++++--------------- .../source/skeletonmaker/javatypemaker.cxx | 10 ++-- .../source/skeletonmaker/skeletoncommon.cxx | 29 +++-------- .../source/skeletonmaker/skeletoncommon.hxx | 4 +- .../source/skeletonmaker/skeletonmaker.cxx | 20 +++----- 12 files changed, 97 insertions(+), 119 deletions(-) diff --git a/main/l10ntools/source/filter/merge/Merger.java b/main/l10ntools/source/filter/merge/Merger.java index e2d1e0bec1..c154a4d771 100644 --- a/main/l10ntools/source/filter/merge/Merger.java +++ b/main/l10ntools/source/filter/merge/Merger.java @@ -101,10 +101,10 @@ public class Merger //------------------------------------------- /** TODO */ - private java.util.Vector m_lTypes; - private java.util.Vector m_lFilters; - private java.util.Vector m_lLoaders; - private java.util.Vector m_lHandlers; + private java.util.Vector<String> m_lTypes; + private java.util.Vector<String> m_lFilters; + private java.util.Vector<String> m_lLoaders; + private java.util.Vector<String> m_lHandlers; //___________________________________________ // interface @@ -208,7 +208,7 @@ public class Merger { java.lang.String sSetName = null; java.lang.String sSubDir = null; - java.util.Vector lFragments = null; + java.util.Vector<String> lFragments = null; try { @@ -286,7 +286,7 @@ public class Merger /** TODO */ private void getFragments(java.io.File aDir , java.lang.String sSetName , - java.util.Vector lFragments , + java.util.Vector<String> lFragments , int nPrettyTabs, java.lang.StringBuilder sBuffer ) throws java.lang.Exception diff --git a/main/l10ntools/source/filter/utils/ConfigHelper.java b/main/l10ntools/source/filter/utils/ConfigHelper.java index 855eb52ff8..ec918eaf15 100644 --- a/main/l10ntools/source/filter/utils/ConfigHelper.java +++ b/main/l10ntools/source/filter/utils/ConfigHelper.java @@ -165,12 +165,12 @@ public class ConfigHelper extends java.util.Properties * if the requested property does not exists. */ public synchronized boolean getBoolean(java.lang.String sProp) - throws java.util.NoSuchElementException + throws java.lang.Exception { - java.lang.String sValue = getProperty(sProp); + java.lang.String sValue = (java.lang.String)getProperty(sProp); if (sValue == null) - throw new java.util.NoSuchElementException("The requested config value \""+sProp+"\" does not exists!"); - return new java.lang.Boolean(sValue).booleanValue(); + throw new java.lang.Exception("missing property: \"" + sProp + "\""); + return java.lang.Boolean.valueOf(sValue).booleanValue(); } public synchronized boolean getBoolean(java.lang.String sProp , @@ -178,7 +178,7 @@ public class ConfigHelper extends java.util.Properties { java.lang.String sDefault = java.lang.String.valueOf(bDefault); java.lang.String sValue = getProperty(sProp, sDefault); - return new java.lang.Boolean(sValue).booleanValue(); + return java.lang.Boolean.valueOf(sValue).booleanValue(); } //------------------------------------------- @@ -193,12 +193,12 @@ public class ConfigHelper extends java.util.Properties * if the requested property does not exists. */ public synchronized int getInt(java.lang.String sProp) - throws java.util.NoSuchElementException + throws java.lang.Exception { - java.lang.String sValue = getProperty(sProp); + java.lang.String sValue = (java.lang.String)getProperty(sProp); if (sValue == null) - throw new java.util.NoSuchElementException("The requested config value \""+sProp+"\" does not exists!"); - return new java.lang.Integer(sValue).intValue(); + throw new java.lang.Exception("missing property: \"" + sProp + "\""); + return java.lang.Integer.parseInt(sValue); } public synchronized int getInt(java.lang.String sProp , @@ -206,7 +206,7 @@ public class ConfigHelper extends java.util.Properties { java.lang.String sDefault = java.lang.String.valueOf(nDefault); java.lang.String sValue = getProperty(sProp, sDefault); - return new java.lang.Integer(sValue).intValue(); + return java.lang.Integer.parseInt(sValue); } //------------------------------------------- @@ -256,7 +256,7 @@ public class ConfigHelper extends java.util.Properties * @throw [NoSuchElementException] * if the requested property does not exists. */ - public synchronized java.util.Vector getStringList(java.lang.String sProp , + public synchronized java.util.Vector<String> getStringList(java.lang.String sProp , java.lang.String sDelimiter, boolean bTrim , boolean bDecode ) @@ -266,7 +266,7 @@ public class ConfigHelper extends java.util.Properties if (sValue == null) throw new java.util.NoSuchElementException("The requested config value \""+sProp+"\" does not exists!"); - java.util.Vector lValue = new java.util.Vector(); + java.util.Vector<String> lValue = new java.util.Vector<String>(); try { java.util.StringTokenizer lTokens = new java.util.StringTokenizer(sValue, sDelimiter); diff --git a/main/l10ntools/source/filter/utils/XMLHelper.java b/main/l10ntools/source/filter/utils/XMLHelper.java index 615def6982..9226419794 100644 --- a/main/l10ntools/source/filter/utils/XMLHelper.java +++ b/main/l10ntools/source/filter/utils/XMLHelper.java @@ -118,17 +118,15 @@ public class XMLHelper * @return [java.util.HashMap] * contains every node name as key and its string(!) as value. */ - public static java.util.HashMap convertNodeToPropSet(org.w3c.dom.Node aNode) + public static java.util.HashMap<String, Object> convertNodeToPropSet(org.w3c.dom.Node aNode) throws java.lang.Exception { - java.util.HashMap aPropSet = new java.util.HashMap(); + java.util.HashMap<String, Object> aPropSet = new java.util.HashMap<String, Object>(); // get all child nodes, which seems to be properties - java.util.Vector lChildNodes = XMLHelper.extractChildNodesByTagName(aNode, XMLTAG_PROP); - java.util.Enumeration en1 = lChildNodes.elements(); - while(en1.hasMoreElements()) - { - org.w3c.dom.Node aChildNode = (org.w3c.dom.Node)en1.nextElement(); + java.util.Vector<org.w3c.dom.Node> lChildNodes = XMLHelper.extractChildNodesByTagName(aNode, XMLTAG_PROP); + for (int i = 0; i < lChildNodes.size(); ++i) { + org.w3c.dom.Node aChildNode = lChildNodes.get(i); // read its name java.lang.String sChildName = XMLHelper.extractNodeAttribByName(aChildNode, XMLATTRIB_OOR_NAME); @@ -149,13 +147,12 @@ public class XMLHelper } // read its value(s?) - java.util.Vector lChildValues = XMLHelper.extractChildNodesByTagName(aChildNode, XMLTAG_VALUE); - java.util.Enumeration en2 = lChildValues.elements(); + java.util.Vector<org.w3c.dom.Node> lChildValues = XMLHelper.extractChildNodesByTagName(aChildNode, XMLTAG_VALUE); int nValue = 0; java.lang.Object aValue = null; - while(en2.hasMoreElements()) + for (int vi = 0; vi < lChildValues.size(); ++vi) { - org.w3c.dom.Node aValueNode = (org.w3c.dom.Node)en2.nextElement(); + org.w3c.dom.Node aValueNode = lChildValues.get(vi); java.lang.String sChildLocale = XMLHelper.extractNodeAttribByName(aValueNode, XMLATTRIB_XML_LANG); boolean bLocalized = (sChildLocale != null); @@ -184,12 +181,12 @@ public class XMLHelper java.lang.String sData = ((org.w3c.dom.CharacterData)aValueNode.getFirstChild()).getData(); - java.util.HashMap lLocalized = null; + java.util.HashMap<String, String> lLocalized = null; if (bLocalized) { if (aValue == null) - aValue = new java.util.HashMap(); - lLocalized = (java.util.HashMap)aValue; + aValue = new java.util.HashMap<String, String>(); + lLocalized = (java.util.HashMap<String, String>)aValue; lLocalized.put(sChildLocale, sData); } else @@ -209,7 +206,7 @@ public class XMLHelper sData = sData.replace('\t', ' '); sData = sData.replace('\n', ' '); java.util.StringTokenizer aTokenizer = new java.util.StringTokenizer(sData, sSeparator); - java.util.Vector lList = new java.util.Vector(); + java.util.ArrayList<String> lList = new java.util.ArrayList<String>(); while(aTokenizer.hasMoreTokens()) { java.lang.String sToken = (java.lang.String)aTokenizer.nextToken(); diff --git a/main/sc/inc/segmenttree.hxx b/main/sc/inc/segmenttree.hxx index 4e3179fb3f..d4c1ee55f9 100644 --- a/main/sc/inc/segmenttree.hxx +++ b/main/sc/inc/segmenttree.hxx @@ -68,6 +68,7 @@ public: ScFlatBoolRowSegments(); ScFlatBoolRowSegments(const ScFlatBoolRowSegments& r); + ScFlatBoolRowSegments& operator=(const ScFlatBoolRowSegments& r); ~ScFlatBoolRowSegments(); void setTrue(SCROW nRow1, SCROW nRow2); @@ -99,6 +100,7 @@ public: }; ScFlatBoolColSegments(); ScFlatBoolColSegments(const ScFlatBoolColSegments& r); + ScFlatBoolColSegments& operator=(const ScFlatBoolColSegments& r); ~ScFlatBoolColSegments(); void setTrue(SCCOL nCol1, SCCOL nCol2); @@ -147,6 +149,7 @@ public: ScFlatUInt16RowSegments(sal_uInt16 nDefault); ScFlatUInt16RowSegments(const ScFlatUInt16RowSegments& r); + ScFlatUInt16RowSegments& operator=(const ScFlatUInt16RowSegments& r); ~ScFlatUInt16RowSegments(); void setValue(SCROW nRow1, SCROW nRow2, sal_uInt16 nValue); diff --git a/main/sc/source/core/data/segmenttree.cxx b/main/sc/source/core/data/segmenttree.cxx index 1149d7ec9f..371807191c 100644 --- a/main/sc/source/core/data/segmenttree.cxx +++ b/main/sc/source/core/data/segmenttree.cxx @@ -353,6 +353,13 @@ ScFlatBoolRowSegments::ScFlatBoolRowSegments(const ScFlatBoolRowSegments& r) : { } +ScFlatBoolRowSegments& ScFlatBoolRowSegments::operator=(const ScFlatBoolRowSegments& r) +{ + if (this != &r) + mpImpl.reset(new ScFlatBoolSegmentsImpl(*r.mpImpl)); + return *this; +} + ScFlatBoolRowSegments::~ScFlatBoolRowSegments() { } @@ -421,6 +428,13 @@ ScFlatBoolColSegments::ScFlatBoolColSegments(const ScFlatBoolColSegments& r) : { } +ScFlatBoolColSegments& ScFlatBoolColSegments::operator=(const ScFlatBoolColSegments& r) +{ + if (this != &r) + mpImpl.reset(new ScFlatBoolSegmentsImpl(*r.mpImpl)); + return *this; +} + ScFlatBoolColSegments::~ScFlatBoolColSegments() { } @@ -520,6 +534,13 @@ ScFlatUInt16RowSegments::ScFlatUInt16RowSegments(const ScFlatUInt16RowSegments& { } +ScFlatUInt16RowSegments& ScFlatUInt16RowSegments::operator=(const ScFlatUInt16RowSegments& r) +{ + if (this != &r) + mpImpl.reset(new ScFlatUInt16SegmentsImpl(*r.mpImpl)); + return *this; +} + ScFlatUInt16RowSegments::~ScFlatUInt16RowSegments() { } diff --git a/main/sfx2/source/dialog/filtergrouping.cxx b/main/sfx2/source/dialog/filtergrouping.cxx index e677f6a723..795b4bdf4b 100644 --- a/main/sfx2/source/dialog/filtergrouping.cxx +++ b/main/sfx2/source/dialog/filtergrouping.cxx @@ -42,7 +42,7 @@ #include <list> #include <vector> #include <map> -#include <algorithm> +#include <functional> //........................................................................ namespace sfx2 diff --git a/main/unodevtools/source/skeletonmaker/cpptypemaker.cxx b/main/unodevtools/source/skeletonmaker/cpptypemaker.cxx index e74045db91..3eb2ebf2c5 100644 --- a/main/unodevtools/source/skeletonmaker/cpptypemaker.cxx +++ b/main/unodevtools/source/skeletonmaker/cpptypemaker.cxx @@ -693,7 +693,7 @@ void printMapsToCppType(std::ostream & o, OString const & name, sal_Int32 rank, std::vector< OString > const & arguments, const char * cppTypeSort) { - o << "maps to C++ "; + o << "maps to C++11 "; if (cppTypeSort != 0) o << cppTypeSort << ' '; @@ -857,11 +857,11 @@ void generateDocumentation(std::ostream & o, } else if (arguments.empty()) { printMapsToCppType(o, options, manager, sort, typeClass, name, rank, arguments, - options.java5 ? "generic class" : "class"); + "generic class"); } else { printMapsToCppType(o, options, manager, sort, typeClass, name, rank, arguments, - options.java5 ? "generic class instantiation" : "class"); + "generic class instantiation"); } o << "; full constructor:\n"; printConstructor(o, options, manager, reader, arguments); diff --git a/main/unodevtools/source/skeletonmaker/javacompskeleton.cxx b/main/unodevtools/source/skeletonmaker/javacompskeleton.cxx index a8fb87ada3..92162a346d 100644 --- a/main/unodevtools/source/skeletonmaker/javacompskeleton.cxx +++ b/main/unodevtools/source/skeletonmaker/javacompskeleton.cxx @@ -338,37 +338,21 @@ void generateXAddInBodies(std::ostream& o, ProgramOptions const & options) // getDisplayArgumentName o << " public String getDisplayArgumentName(String " - "aProgrammaticFunctionName, int nArgument)\n {\n"; - if (options.java5) { - o << " return getAddinProperty(aProgrammaticFunctionName,\n" - " m_functionMap.get(\n" - " aProgrammaticFunctionName).get(" - "nArgument),\n" - " sDISPLAYNAME);\n }\n\n"; - } else { - o << " return getAddinProperty(aProgrammaticFunctionName, (String)\n" - " ((java.util.Hashtable)m_functionMap." - "get(\n aProgrammaticFunctionName))." - "get(\n new Integer(nArgument))" - ", sDISPLAYNAME);\n }\n\n"; - } + "aProgrammaticFunctionName, int nArgument)\n {\n" + " return getAddinProperty(aProgrammaticFunctionName,\n" + " ((java.util.Hashtable<Integer, String>)m_functionMap.get(\n" + " aProgrammaticFunctionName)).get(\n" + " Integer.valueOf(nArgument)),\n" + " sDISPLAYNAME);\n }\n\n"; // getArgumentDescription o << " public String getArgumentDescription(String " - "aProgrammaticFunctionName, int nArgument)\n {\n"; - if (options.java5) { - o << " return getAddinProperty(aProgrammaticFunctionName,\n" - " m_functionMap.get(\n" - " aProgrammaticFunctionName).get(" - "nArgument),\n" - " sDESCRIPTION);\n }\n\n"; - } else { - o << " return getAddinProperty(aProgrammaticFunctionName, (String)\n" - " ((java.util.Hashtable)m_functionMap." - "get(\n aProgrammaticFunctionName))." - "get(\n new Integer(nArgument))" - ", sDESCRIPTION);\n }\n\n"; - } + "aProgrammaticFunctionName, int nArgument)\n {\n" + " return getAddinProperty(aProgrammaticFunctionName,\n" + " ((java.util.Hashtable<Integer, String>)m_functionMap.get(\n" + " aProgrammaticFunctionName)).get(\n" + " Integer.valueOf(nArgument)),\n" + " sDESCRIPTION);\n }\n\n"; // getProgrammaticCategoryName o << " public String getProgrammaticCategoryName(String " "aProgrammaticFunctionName)\n {\n" @@ -628,24 +612,16 @@ void generateAddinConstructorAndHelper(std::ostream& o, "m_xHAccess = null;\n" " private com.sun.star.container.XHierarchicalNameAccess " "m_xCompAccess = null;\n"; - if (options.java5) { - o << " private java.util.Hashtable<\n String, " - "java.util.Hashtable< Integer, String> > m_functionMap = null;\n\n"; - } else { - o << " private java.util.Hashtable m_functionMap = null;\n\n"; - } + o << " private java.util.Hashtable<\n String, " + "java.util.Hashtable<Integer, String> > m_functionMap = null;\n\n"; // Constructor o << "\n public " << classname << "( XComponentContext context )\n {\n" " m_xContext = context;\n\n" " try {\n"; - if (options.java5) { - o << " m_functionMap = new java.util.Hashtable<\n" - " String, java.util.Hashtable< Integer, " - "String > >();\n\n"; - } else { - o << " m_functionMap = new java.util.Hashtable();\n\n"; - } + o << " m_functionMap = new java.util.Hashtable<\n" + " String, java.util.Hashtable<Integer, " + "String> >();\n\n"; generateFunctionParameterMap(o, options, manager, interfaces); diff --git a/main/unodevtools/source/skeletonmaker/javatypemaker.cxx b/main/unodevtools/source/skeletonmaker/javatypemaker.cxx index ee1626295d..50da97d143 100644 --- a/main/unodevtools/source/skeletonmaker/javatypemaker.cxx +++ b/main/unodevtools/source/skeletonmaker/javatypemaker.cxx @@ -90,7 +90,7 @@ void printType(std::ostream & o, if ( sType.indexOf("java.lang.") == 0 ) sType = sType.copy(10); o << sType.getStr(); - if ( !arguments.empty() && options.java5 ) { + if ( !arguments.empty() ) { o << '<'; for ( std::vector< OString >::const_iterator i(arguments.begin()); i != arguments.end(); ++i ) @@ -217,7 +217,7 @@ void printMethodParameters(std::ostream & o, } else if ( (reader.getMethodParameterFlags(method, i) & RT_PARAM_REST ) != 0) { - o << (options.java5 ? "..." : "[]"); + o << "..."; } o << ' '; } @@ -636,7 +636,7 @@ void printMapsToJavaType(std::ostream & o, OString const & name, sal_Int32 rank, std::vector< OString > const & arguments, const char * javaTypeSort) { - o << "maps to Java " << (options.java5 ? "1.5" : "1.4") << " "; + o << "maps to Java " << (options.java8 ? "1.8" : "1.4") << " "; if ( javaTypeSort != 0 ) { o << javaTypeSort << ' '; } @@ -795,11 +795,11 @@ void generateDocumentation(std::ostream & o, } else if ( arguments.empty() ) { printMapsToJavaType(o, options, manager, sort, typeClass, name, rank, arguments, - options.java5 ? "generic class" : "class"); + "generic class"); } else { printMapsToJavaType(o, options, manager, sort, typeClass, name, rank, arguments, - options.java5 ? "generic class instantiation" : "class"); + "generic class instantiation"); } o << "; full constructor:\n"; printConstructor(o, options, manager, reader, arguments); diff --git a/main/unodevtools/source/skeletonmaker/skeletoncommon.cxx b/main/unodevtools/source/skeletonmaker/skeletoncommon.cxx index 9047916e4c..c0a9a377d8 100644 --- a/main/unodevtools/source/skeletonmaker/skeletoncommon.cxx +++ b/main/unodevtools/source/skeletonmaker/skeletoncommon.cxx @@ -635,12 +635,8 @@ void generateFunctionParamterMap(std::ostream& o, o << " ParamMap fpm;\n"; } else { - if ( options.java5 ) - o << " java.util.Hashtable< Integer, String > fpm = " - "new java.util.Hashtable< Integer, String >();\n"; - else - o << " java.util.Hashtable fpm = " - "new java.util.Hashtable();\n"; + o << " java.util.Hashtable<Integer, String> fpm = " + "new java.util.Hashtable<Integer, String>();\n"; } bFirst = false; } else @@ -648,11 +644,8 @@ void generateFunctionParamterMap(std::ostream& o, o << " fpm = ParamMap();\n"; } else { - if ( options.java5 ) - o << " fpm = new java.util.Hashtable< " - "Integer, String >();\n"; - else - o << " fpm = new java.util.Hashtable();\n"; + o << " fpm = new java.util.Hashtable< " + "Integer, String>();\n"; } for ( sal_uInt16 p = 0; p < reader.getMethodParameterCount(m); ++p ) { @@ -663,16 +656,10 @@ void generateFunctionParamterMap(std::ostream& o, << "\");\n"; } else { - if ( options.java5 ) - o << " fpm.put(" << p << ", \"" - << codemaker::convertString( - reader.getMethodParameterName(m, p)) - << "\");\n"; - else - o << " fpm.put(new Integer(" << p << "), \"" - << codemaker::convertString( - reader.getMethodParameterName(m, p)) - << "\");\n"; + o << " fpm.put(" << p << ", \"" + << codemaker::convertString( + reader.getMethodParameterName(m, p)) + << "\");\n"; } } diff --git a/main/unodevtools/source/skeletonmaker/skeletoncommon.hxx b/main/unodevtools/source/skeletonmaker/skeletoncommon.hxx index 5684a21db9..c9f197a277 100644 --- a/main/unodevtools/source/skeletonmaker/skeletoncommon.hxx +++ b/main/unodevtools/source/skeletonmaker/skeletoncommon.hxx @@ -44,11 +44,11 @@ typedef ::std::vector< ::std::pair< rtl::OString, struct ProgramOptions { - ProgramOptions(): java5(true), all(false), dump(false), license(false), + ProgramOptions(): java8(true), all(false), dump(false), license(false), shortnames(false), supportpropertysetmixin(false), backwardcompatible(false), language(1), componenttype(1) {} - bool java5; + bool java8; bool all; bool dump; bool license; diff --git a/main/unodevtools/source/skeletonmaker/skeletonmaker.cxx b/main/unodevtools/source/skeletonmaker/skeletonmaker.cxx index c39aed7479..e02777250c 100644 --- a/main/unodevtools/source/skeletonmaker/skeletonmaker.cxx +++ b/main/unodevtools/source/skeletonmaker/skeletonmaker.cxx @@ -61,11 +61,10 @@ static const char usageText[] = " a space separated list of urls.\n" " -a, --all list all interface methods, not only the direct\n" " ones\n" -" --(java4|java5|cpp) select the target language\n" -" --java4 generate output for Java 1.4 or earlier\n" -" --java5 generate output for Java 1.5 or later (is \n" -" currently the default)\n" -" --cpp generate output for C++\n" + " --(java8|cpp) select the target language\n" + " --java8 generate output for Java 1.8 or later (is \n" + " currently the default)\n" + " --cpp generate output for C++\n" " -sn, --shortnames using namespace abbreviation 'css:': for\n" " '::com::sun::star::', only valid for sub-command\n" " 'dump' and target language 'cpp'. It is default for the\n" @@ -200,18 +199,13 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, /*argv*/) options.all = true; continue; } - if ( readOption( &bOption, "java4", &nPos, arg) ) { - options.java5 = false; - options.language = 1; - continue; - } - if ( readOption( &bOption, "java5", &nPos, arg) ) { - options.java5 = true; + if ( readOption( &bOption, "java4", &nPos, arg) || readOption( &bOption, "java5", &nPos, arg) || readOption( &bOption, "java8", &nPos, arg) ) { + options.java8 = true; options.language = 1; continue; } if ( readOption( &bOption, "cpp", &nPos, arg) ) { - options.java5 = false; + options.java8 = false; options.language = 2; continue; }
