[Libreoffice-commits] core.git: include/o3tl include/tools rsc/inc rsc/source tools/source
Noel Grandin
noel.grandin at collabora.co.uk
Mon Feb 13 09:38:41 UTC 2017
include/o3tl/strong_int.hxx | 74 ++++++++++++++++
include/tools/unqidx.hxx | 6 -
rsc/inc/rscclobj.hxx | 8 -
rsc/inc/rscdef.hxx | 179 ++++++++++++++++++++-------------------
rsc/inc/rscpar.hxx | 13 +-
rsc/inc/rscrsc.hxx | 4
rsc/source/parser/rscdb.cxx | 10 +-
rsc/source/parser/rscpar.cxx | 4
rsc/source/res/rscclobj.cxx | 4
rsc/source/rsc/rsc.cxx | 4
rsc/source/tools/rscdef.cxx | 12 +-
tools/source/memtools/unqidx.cxx | 2
tools/source/ref/pstm.cxx | 2
13 files changed, 203 insertions(+), 119 deletions(-)
New commits:
commit e2e76df7e48fb77f1e802f57c7d9a22eb8c74c5a
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Thu Feb 9 11:29:05 2017 +0200
create strong_int template and use it in tools::UniqueIndex
an experiment to see how useful a strong_int template works out
Change-Id: Ib77700350f0fa3b018a1926233adf7a40d728d16
Reviewed-on: https://gerrit.libreoffice.org/34072
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/include/o3tl/strong_int.hxx b/include/o3tl/strong_int.hxx
new file mode 100644
index 0000000..7f24714
--- /dev/null
+++ b/include/o3tl/strong_int.hxx
@@ -0,0 +1,74 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_O3TL_STRONG_TYPEDEF_HXX
+#define INCLUDED_O3TL_STRONG_TYPEDEF_HXX
+
+#include <sal/config.h>
+
+namespace o3tl
+{
+
+///
+/// Wrap up an integer type so that we prevent accidental conversion to other integer types.
+///
+/// e.g.
+/// struct MyIntTag {};
+/// typedef o3tl::strong_int<unsigned, MyIntTag> MyInt;
+///
+/// \param UNDERLYING_TYPE the underlying scalar type
+/// \param PHANTOM_TYPE a type tag, used to distinguish this instantion of the template
+/// from other instantiantions with the same UNDERLYING_TYPE.
+///
+template <typename UNDERLYING_TYPE, typename PHANTOM_TYPE>
+struct strong_int
+{
+public:
+ strong_int(UNDERLYING_TYPE value) : m_value(value) {}
+ strong_int() : m_value(0) {}
+
+ explicit operator UNDERLYING_TYPE() const { return m_value; }
+ explicit operator bool() const { return m_value != 0; }
+ UNDERLYING_TYPE get() const { return m_value; }
+
+ bool operator<(strong_int const & other) const { return m_value < other.m_value; }
+ bool operator<=(strong_int const & other) const { return m_value <= other.m_value; }
+ bool operator>(strong_int const & other) const { return m_value > other.m_value; }
+ bool operator>=(strong_int const & other) const { return m_value >= other.m_value; }
+ bool operator==(strong_int const & other) const { return m_value == other.m_value; }
+ bool operator!=(strong_int const & other) const { return m_value != other.m_value; }
+ strong_int& operator++() { ++m_value; return *this; }
+ strong_int operator++(int) { UNDERLYING_TYPE nOldValue = m_value; ++m_value; return strong_int(nOldValue); }
+
+private:
+ UNDERLYING_TYPE m_value;
+};
+
+template <typename UT, typename PT>
+strong_int<UT,PT> operator+(strong_int<UT,PT> const & lhs, strong_int<UT,PT> const & rhs)
+{
+ return strong_int<UT,PT>(lhs.get() + rhs.get());
+}
+
+
+}; // namespace o3tl
+
+#endif /* INCLUDED_O3TL_STRONG_TYPEDEF_HXX */
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/tools/unqidx.hxx b/include/tools/unqidx.hxx
index 2c05432..1ea7d47 100644
--- a/include/tools/unqidx.hxx
+++ b/include/tools/unqidx.hxx
@@ -21,13 +21,15 @@
#include <sal/types.h>
#include <tools/toolsdllapi.h>
+#include <o3tl/strong_int.hxx>
#include <map>
class SAL_WARN_UNUSED TOOLS_DLLPUBLIC UniqueIndexImpl
{
public:
- typedef sal_uInt32 Index;
- static Index const IndexNotFound = SAL_MAX_UINT32;
+ struct IndexTagType {};
+ typedef o3tl::strong_int<sal_uInt32, IndexTagType> Index;
+ static Index const IndexNotFound;// = Index(SAL_MAX_UINT32);
private:
std::map<Index, void*> maMap;
diff --git a/rsc/inc/rscclobj.hxx b/rsc/inc/rscclobj.hxx
index 7bbc5f1..c8adca5 100644
--- a/rsc/inc/rscclobj.hxx
+++ b/rsc/inc/rscclobj.hxx
@@ -28,18 +28,18 @@ class ObjNode : public IdNode
{
RscId aRscId; // Id der Resource
CLASS_DATA pRscObj;// pointer to a resourceobject
- sal_uLong lFileKey;// Dateischluessel
+ RscFileTab::Index lFileKey;// Dateischluessel
protected:
using NameNode::Search;
public:
using NameNode::Insert;
- ObjNode( const RscId & rId, CLASS_DATA pData, sal_uLong lKey );
- ObjNode * DelObjNode( RscTop * pClass, sal_uLong lFileKey );
+ ObjNode( const RscId & rId, CLASS_DATA pData, RscFileTab::Index lKey );
+ ObjNode * DelObjNode( RscTop * pClass, RscFileTab::Index lFileKey );
sal_uInt32 GetId() const override;
const RscId& GetRscId() const { return aRscId; }
- sal_uLong GetFileKey() const { return lFileKey; };
+ RscFileTab::Index GetFileKey() const { return lFileKey; };
ObjNode* Search( const RscId &rName ) const //< search the index in the b-tree
{
return static_cast<ObjNode *>(IdNode::Search( rName.GetNumber() ));
diff --git a/rsc/inc/rscdef.hxx b/rsc/inc/rscdef.hxx
index e336fac..1aeeead 100644
--- a/rsc/inc/rscdef.hxx
+++ b/rsc/inc/rscdef.hxx
@@ -113,67 +113,8 @@ public:
bool IsId() const { return !aExp.IsNothing(); }
};
-/*********** R s c D e f i n e *******************************************/
-class RscDefine : public NameNode
-{
-friend class RscFileTab;
-friend class RscDefineList;
-friend class RscDefTree;
-friend class RscExpression;
-friend class RscId;
-
- sal_uLong lFileKey; // file the define belongs to
- sal_uInt32 nRefCount; // reference count to this object
- sal_Int32 lId; // identifier
- RscExpression * pExp; // expression
- OString m_aName;
-
- virtual COMPARE Compare( const NameNode * ) const override;
- virtual COMPARE Compare( const void * ) const override;
-
-protected:
-
- RscDefine( sal_uLong lFileKey, const OString& rDefName,
- sal_Int32 lDefId );
- RscDefine( sal_uLong lFileKey, const OString& rDefName,
- RscExpression * pExpression );
- virtual ~RscDefine() override;
-
- void IncRef() { nRefCount++; }
- void DecRef();
- void DefineToNumber();
-
-public:
- sal_uLong GetFileKey() const { return lFileKey; }
- void Evaluate();
- sal_Int32 GetNumber() const { return lId; }
- RscDefine* Search( const char * ) const;
- const OString& GetName() const { return m_aName; }
-};
-
typedef ::std::vector< RscDefine* > RscSubDefList;
-class RscDefineList
-{
-friend class RscFile;
-friend class RscFileTab;
-private:
- RscSubDefList maList;
- // pExpression always belongs to the list
- RscDefine * New( sal_uLong lFileKey, const OString& rDefName,
- sal_Int32 lDefId, size_t lPos );
- RscDefine * New( sal_uLong lFileKey, const OString& rDefName,
- RscExpression * pExpression, size_t lPos );
- bool Remove();
- size_t GetPos( RscDefine* item )
- {
- for ( size_t i = 0, n = maList.size(); i < n; ++i )
- if ( maList[ i ] == item )
- return i;
- return size_t(-1);
- }
-};
-
/*********** R s c E x p r e s s i o n ***********************************/
class RscExpression
{
@@ -190,37 +131,10 @@ public:
};
/********************** R S C F I L E ************************************/
-class RscDepend
-{
- sal_uLong lKey;
-public:
- RscDepend( sal_uLong lIncKey ){ lKey = lIncKey; };
- sal_uLong GetFileKey(){ return lKey; }
-};
+class RscDepend;
typedef ::std::vector< RscDepend* > RscDependList;
-// table containing al file names
-class RscFile
-{
-friend class RscFileTab;
- bool bIncFile; // whether it is an include file
-public:
- bool bLoaded; // whether the file is loaded
- bool bScanned; // whether the file searches for include
- OString aFileName; // file name
- OString aPathName; // file path and name
- RscDefineList aDefLst; // list of defines
- RscDependList aDepLst; // list of depend
-
- RscFile();
- ~RscFile();
- void InsertDependFile( sal_uLong lDepFile );
- bool Depend( sal_uLong lDepend, sal_uLong lFree );
- void SetIncFlag(){ bIncFile = true; };
- bool IsIncFile(){ return bIncFile; };
-};
-
class RscDefTree
{
RscDefine * pDefRoot;
@@ -234,6 +148,8 @@ public:
void Remove( RscDefine * pDef );
};
+class RscFile;
+
class RscFileTab : public UniqueIndex<RscFile>
{
public:
@@ -271,6 +187,95 @@ public:
RscFile * GetFile( Index lFileKey ){ return Get( lFileKey ); }
};
+class RscDepend
+{
+ RscFileTab::Index lKey;
+public:
+ RscDepend( RscFileTab::Index lIncKey ){ lKey = lIncKey; };
+ RscFileTab::Index GetFileKey(){ return lKey; }
+};
+
+class RscDefineList
+{
+friend class RscFile;
+friend class RscFileTab;
+private:
+ RscSubDefList maList;
+ // pExpression always belongs to the list
+ RscDefine * New( RscFileTab::Index lFileKey, const OString& rDefName,
+ sal_Int32 lDefId, size_t lPos );
+ RscDefine * New( RscFileTab::Index lFileKey, const OString& rDefName,
+ RscExpression * pExpression, size_t lPos );
+ bool Remove();
+ size_t GetPos( RscDefine* item )
+ {
+ for ( size_t i = 0, n = maList.size(); i < n; ++i )
+ if ( maList[ i ] == item )
+ return i;
+ return size_t(-1);
+ }
+};
+
+// table containing all file names
+class RscFile
+{
+friend class RscFileTab;
+ bool bIncFile; // whether it is an include file
+public:
+ bool bLoaded; // whether the file is loaded
+ bool bScanned; // whether the file searches for include
+ OString aFileName; // file name
+ OString aPathName; // file path and name
+ RscDefineList aDefLst; // list of defines
+ RscDependList aDepLst; // list of depend
+
+ RscFile();
+ ~RscFile();
+ void InsertDependFile( RscFileTab::Index lDepFile );
+ bool Depend( RscFileTab::Index lDepend, RscFileTab::Index lFree );
+ void SetIncFlag(){ bIncFile = true; };
+ bool IsIncFile(){ return bIncFile; };
+};
+
+/*********** R s c D e f i n e *******************************************/
+class RscDefine : public NameNode
+{
+friend class RscFileTab;
+friend class RscDefineList;
+friend class RscDefTree;
+friend class RscExpression;
+friend class RscId;
+
+ RscFileTab::Index lFileKey; // file the define belongs to
+ sal_uInt32 nRefCount; // reference count to this object
+ sal_Int32 lId; // identifier
+ RscExpression * pExp; // expression
+ OString m_aName;
+
+ virtual COMPARE Compare( const NameNode * ) const override;
+ virtual COMPARE Compare( const void * ) const override;
+
+protected:
+
+ RscDefine( RscFileTab::Index lFileKey, const OString& rDefName,
+ sal_Int32 lDefId );
+ RscDefine( RscFileTab::Index lFileKey, const OString& rDefName,
+ RscExpression * pExpression );
+ virtual ~RscDefine() override;
+
+ void IncRef() { nRefCount++; }
+ void DecRef();
+ void DefineToNumber();
+
+public:
+ RscFileTab::Index GetFileKey() const { return lFileKey; }
+ void Evaluate();
+ sal_Int32 GetNumber() const { return lId; }
+ RscDefine* Search( const char * ) const;
+ const OString& GetName() const { return m_aName; }
+};
+
+
#endif // INCLUDED_RSC_INC_RSCDEF_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/rsc/inc/rscpar.hxx b/rsc/inc/rscpar.hxx
index 695ea6e..265158b 100644
--- a/rsc/inc/rscpar.hxx
+++ b/rsc/inc/rscpar.hxx
@@ -21,6 +21,7 @@
#include <rsctools.hxx>
#include <rscerror.h>
+#include <rscdef.hxx>
#include <tools/solar.h>
class RscTypCont;
@@ -33,8 +34,8 @@ class RscFileInst
sal_uInt32 nErrorLine; // Zeile des ersten Fehlers
sal_uInt32 nErrorPos; // Position des ersten Fehlers
sal_uInt32 nLineNo; // Zeile in der Eingabedatei
- sal_uLong lFileIndex; // Index auf Eingabedatei
- sal_uLong lSrcIndex; // Index auf Basisdatei
+ RscFileTab::Index lFileIndex; // Index auf Eingabedatei
+ RscFileTab::Index lSrcIndex; // Index auf Basisdatei
FILE * fInputFile; // Eingabedatei
char * pInput; // Lesepuffer
static const sal_uInt32 nInputBufLen = READBUFFER_MAX; // Laenge des Lesepuffers
@@ -49,12 +50,12 @@ class RscFileInst
public:
RscTypCont * pTypCont;
void Init(); // ctor initialisieren
- RscFileInst( RscTypCont * pTC, sal_uLong lIndexSrc,
- sal_uLong lFileIndex, FILE * fFile );
+ RscFileInst( RscTypCont * pTC, RscFileTab::Index lIndexSrc,
+ RscFileTab::Index lFileIndex, FILE * fFile );
~RscFileInst();
bool IsEof() const { return bEof; }
- void SetFileIndex( sal_uLong lFIndex ) { lFileIndex = lFIndex; }
- sal_uLong GetFileIndex() { return lFileIndex; }
+ void SetFileIndex( RscFileTab::Index lFIndex ) { lFileIndex = lFIndex; }
+ RscFileTab::Index GetFileIndex() { return lFileIndex; }
void SetLineNo( sal_uInt32 nLine ) { nLineNo = nLine; }
sal_uInt32 GetLineNo() { return nLineNo; }
sal_uInt32 GetScanPos() { return nScanPos; }
diff --git a/rsc/inc/rscrsc.hxx b/rsc/inc/rscrsc.hxx
index 8f2bc6c..4dccfa9 100644
--- a/rsc/inc/rscrsc.hxx
+++ b/rsc/inc/rscrsc.hxx
@@ -88,8 +88,8 @@ public:
ERRTYPE Start();
// read include statements
- ERRTYPE IncludeParser( sal_uLong lFileKey );
- ERRTYPE ParseOneFile( sal_uLong lFileKey, const RscCmdLine::OutputFile* pOutputFile, const WriteRcContext* pContext );
+ ERRTYPE IncludeParser( RscFileTab::Index lFileKey );
+ ERRTYPE ParseOneFile( RscFileTab::Index lFileKey, const RscCmdLine::OutputFile* pOutputFile, const WriteRcContext* pContext );
ERRTYPE Link();
void EndCompile();
};
diff --git a/rsc/source/parser/rscdb.cxx b/rsc/source/parser/rscdb.cxx
index bb0fecf..1675cc4 100644
--- a/rsc/source/parser/rscdb.cxx
+++ b/rsc/source/parser/rscdb.cxx
@@ -239,7 +239,7 @@ private:
ERRTYPE aError; // contains the first field
RscTypCont* pTypCont;
FILE * fOutput; // output file
- sal_uLong lFileKey; // what source file
+ RscFileTab::Index lFileKey; // what source file
RscTop * pClass;
RscEnumerateObj(RscTypCont* pTC, FILE* pOutputFile)
@@ -358,7 +358,7 @@ public:
pRoot->EnumNodes( LINK( this, RscEnumerateRef, CallBackWriteRc ) );
return aEnumObj.aError;
}
- ERRTYPE const & WriteSrc( sal_uLong lFileKey )
+ ERRTYPE const & WriteSrc( RscFileTab::Index lFileKey )
{
aEnumObj.lFileKey = lFileKey;
@@ -424,14 +424,14 @@ void RscTypCont::WriteSrc( FILE * fOutput, RscFileTab::Index nFileKey )
class RscDel
{
- sal_uLong lFileKey;
+ RscFileTab::Index lFileKey;
DECL_LINK( Delete, const NameNode&, void );
public:
- RscDel( RscTop * pRoot, sal_uLong lKey );
+ RscDel( RscTop * pRoot, RscFileTab::Index lKey );
};
-inline RscDel::RscDel( RscTop * pRoot, sal_uLong lKey )
+inline RscDel::RscDel( RscTop * pRoot, RscFileTab::Index lKey )
: lFileKey(lKey)
{
pRoot->EnumNodes( LINK( this, RscDel, Delete ) );
diff --git a/rsc/source/parser/rscpar.cxx b/rsc/source/parser/rscpar.cxx
index d81d3aa..4fc1b11 100644
--- a/rsc/source/parser/rscpar.cxx
+++ b/rsc/source/parser/rscpar.cxx
@@ -32,8 +32,8 @@ void RscFileInst::Init()
bEof = false;
}
-RscFileInst::RscFileInst( RscTypCont * pTC, sal_uLong lIndexSrc,
- sal_uLong lFIndex, FILE * fFile )
+RscFileInst::RscFileInst( RscTypCont * pTC, RscFileTab::Index lIndexSrc,
+ RscFileTab::Index lFIndex, FILE * fFile )
: nErrorLine(0)
, nErrorPos(0)
{
diff --git a/rsc/source/res/rscclobj.cxx b/rsc/source/res/rscclobj.cxx
index 80969f7..2918428 100644
--- a/rsc/source/res/rscclobj.cxx
+++ b/rsc/source/res/rscclobj.cxx
@@ -56,14 +56,14 @@ ObjNode * RefNode::GetObjNode( const RscId & rRscId )
return nullptr;
}
-ObjNode::ObjNode( const RscId & rId, CLASS_DATA pData, sal_uLong lKey )
+ObjNode::ObjNode( const RscId & rId, CLASS_DATA pData, RscFileTab::Index lKey )
: aRscId(rId)
, pRscObj(pData)
, lFileKey(lKey)
{
}
-ObjNode * ObjNode::DelObjNode( RscTop * pClass, sal_uLong nFileKey )
+ObjNode * ObjNode::DelObjNode( RscTop * pClass, RscFileTab::Index nFileKey )
{
ObjNode * pRetNode = this;
diff --git a/rsc/source/rsc/rsc.cxx b/rsc/source/rsc/rsc.cxx
index 0b44a61..8ccfd83 100644
--- a/rsc/source/rsc/rsc.cxx
+++ b/rsc/source/rsc/rsc.cxx
@@ -405,7 +405,7 @@ void RscCompiler::EndCompile()
}
}
-ERRTYPE RscCompiler::IncludeParser( sal_uLong lFileKey )
+ERRTYPE RscCompiler::IncludeParser( RscFileTab::Index lFileKey )
{
FILE * finput;
RscFile * pFName;
@@ -448,7 +448,7 @@ ERRTYPE RscCompiler::IncludeParser( sal_uLong lFileKey )
return aError;
}
-ERRTYPE RscCompiler::ParseOneFile( sal_uLong lFileKey,
+ERRTYPE RscCompiler::ParseOneFile( RscFileTab::Index lFileKey,
const RscCmdLine::OutputFile* pOutputFile,
const WriteRcContext* pContext )
{
diff --git a/rsc/source/tools/rscdef.cxx b/rsc/source/tools/rscdef.cxx
index 2e2a057..4ff0216 100644
--- a/rsc/source/tools/rscdef.cxx
+++ b/rsc/source/tools/rscdef.cxx
@@ -114,7 +114,7 @@ OString RscId::GetName() const
return aStr.makeStringAndClear();
}
-RscDefine::RscDefine( sal_uLong lKey, const OString& rDefName, sal_Int32 lDefId )
+RscDefine::RscDefine( RscFileTab::Index lKey, const OString& rDefName, sal_Int32 lDefId )
: m_aName( rDefName )
{
nRefCount = 0;
@@ -123,7 +123,7 @@ RscDefine::RscDefine( sal_uLong lKey, const OString& rDefName, sal_Int32 lDefId
pExp = nullptr;
}
-RscDefine::RscDefine( sal_uLong lKey, const OString& rDefName,
+RscDefine::RscDefine( RscFileTab::Index lKey, const OString& rDefName,
RscExpression * pExpression )
: lId(0), m_aName( rDefName )
{
@@ -192,7 +192,7 @@ COMPARE RscDefine::Compare( const void * pSearch ) const
return EQUAL;
}
-RscDefine * RscDefineList::New( sal_uLong lFileKey, const OString& rDefName,
+RscDefine * RscDefineList::New( RscFileTab::Index lFileKey, const OString& rDefName,
sal_Int32 lDefId, size_t lPos )
{
RscDefine * pDef;
@@ -212,7 +212,7 @@ RscDefine * RscDefineList::New( sal_uLong lFileKey, const OString& rDefName,
return pDef;
}
-RscDefine * RscDefineList::New( sal_uLong lFileKey, const OString& rDefName,
+RscDefine * RscDefineList::New( RscFileTab::Index lFileKey, const OString& rDefName,
RscExpression * pExpression, size_t lPos )
{
RscDefine * pDef;
@@ -386,7 +386,7 @@ RscFile::~RscFile()
while( aDefLst.Remove() ) ;
}
-bool RscFile::Depend( sal_uLong lDepend, sal_uLong lFree )
+bool RscFile::Depend( RscFileTab::Index lDepend, RscFileTab::Index lFree )
{
for ( size_t i = aDepLst.size(); i > 0; )
{
@@ -405,7 +405,7 @@ bool RscFile::Depend( sal_uLong lDepend, sal_uLong lFree )
return true;
}
-void RscFile::InsertDependFile( sal_uLong lIncFile )
+void RscFile::InsertDependFile( RscFileTab::Index lIncFile )
{
for ( size_t i = 0, n = aDepLst.size(); i < n; ++i )
{
diff --git a/tools/source/memtools/unqidx.cxx b/tools/source/memtools/unqidx.cxx
index 7a20916..e424988 100644
--- a/tools/source/memtools/unqidx.cxx
+++ b/tools/source/memtools/unqidx.cxx
@@ -19,6 +19,8 @@
#include <tools/unqidx.hxx>
+UniqueIndexImpl::Index const UniqueIndexImpl::IndexNotFound(SAL_MAX_UINT32);
+
UniqueIndexImpl::Index UniqueIndexImpl::Insert( void* p )
{
// NULL-Pointer not allowed
diff --git a/tools/source/ref/pstm.cxx b/tools/source/ref/pstm.cxx
index 6c1015f..4bd0d80 100644
--- a/tools/source/ref/pstm.cxx
+++ b/tools/source/ref/pstm.cxx
@@ -422,7 +422,7 @@ SvPersistStream& SvPersistStream::WritePointer
aPTable[ pObj ] = nId;
nP |= P_OBJ;
}
- WriteId( *this, nP, nId, pObj->GetClassId() );
+ WriteId( *this, nP, (sal_uInt32)nId, pObj->GetClassId() );
if( nP & P_OBJ )
WriteObj( nP, pObj );
}
More information about the Libreoffice-commits
mailing list