Don't litter pCustomShapeTypeTranslationHashMap with dangling keys

...that are char* into temporary OString at the GetOOXMLPresetGeometry call site
in oox/source/export/shapes.cxx.

Change-Id: Ifd6533f9bd869b740a6b483f4a1f6e4860007b9c
This commit is contained in:
Stephan Bergmann 2014-04-22 15:06:58 +02:00
parent 55c832d86e
commit ab9813eaea

View File

@ -1302,8 +1302,6 @@ static CustomShapeTypeTranslationHashMap* pCustomShapeTypeTranslationHashMap = N
const char* GetOOXMLPresetGeometry( const char* sShapeType ) const char* GetOOXMLPresetGeometry( const char* sShapeType )
{ {
const char* sPresetGeo;
if( pCustomShapeTypeTranslationHashMap == NULL ) if( pCustomShapeTypeTranslationHashMap == NULL )
{ {
pCustomShapeTypeTranslationHashMap = new CustomShapeTypeTranslationHashMap (); pCustomShapeTypeTranslationHashMap = new CustomShapeTypeTranslationHashMap ();
@ -1312,13 +1310,9 @@ const char* GetOOXMLPresetGeometry( const char* sShapeType )
(*pCustomShapeTypeTranslationHashMap)[ pCustomShapeTypeTranslationTable[ i ].sOOo ] = pCustomShapeTypeTranslationTable[ i ].sMSO; (*pCustomShapeTypeTranslationHashMap)[ pCustomShapeTypeTranslationTable[ i ].sOOo ] = pCustomShapeTypeTranslationTable[ i ].sMSO;
} }
} }
CustomShapeTypeTranslationHashMap::iterator i(
sPresetGeo = (*pCustomShapeTypeTranslationHashMap)[ sShapeType ]; pCustomShapeTypeTranslationHashMap->find(sShapeType));
return i == pCustomShapeTypeTranslationHashMap->end() ? "rect" : i->second;
if( sPresetGeo == NULL )
sPresetGeo = "rect";
return sPresetGeo;
} }
typedef boost::unordered_map< const char*, MSO_SPT, rtl::CStringHash, rtl::CStringEqual> DMLToVMLTranslationHashMap; typedef boost::unordered_map< const char*, MSO_SPT, rtl::CStringHash, rtl::CStringEqual> DMLToVMLTranslationHashMap;