rpms/openoffice.org/devel workspace.aw073.patch, 1.2, 1.3 openoffice.org.spec, 1.2010, 1.2011

Caolan McNamara caolanm at fedoraproject.org
Wed Sep 23 15:09:32 UTC 2009


Author: caolanm

Update of /cvs/pkgs/rpms/openoffice.org/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16850/devel

Modified Files:
	openoffice.org.spec 
Added Files:
	workspace.aw073.patch 
Log Message:
Resolves: rhbz#522839 crash on exit after loading .doc

workspace.aw073.patch:
 editobj.cxx |   36 +++++++++++++++++++++++++++++++++---
 1 file changed, 33 insertions(+), 3 deletions(-)

Index: workspace.aw073.patch
===================================================================
RCS file: workspace.aw073.patch
diff -N workspace.aw073.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ workspace.aw073.patch	23 Sep 2009 15:09:31 -0000	1.3
@@ -0,0 +1,78 @@
+Index: source/editeng/editobj.cxx
+===================================================================
+--- svx.orig/source/editeng/editobj.cxx	(.../tags/DEV300_m52/svx)	(revision 276405)
++++ svx/source/editeng/editobj.cxx	(.../cws/aw073/svx)	(revision 276405)
+@@ -599,6 +617,23 @@
+     }
+ }
+ 
++EditEngineItemPool* getEditEngineItemPool(SfxItemPool* pPool)
++{
++	EditEngineItemPool* pRetval = dynamic_cast< EditEngineItemPool* >(pPool);
++
++	while(!pRetval && pPool && pPool->GetSecondaryPool())
++	{
++		pPool = pPool->GetSecondaryPool();
++
++		if(pPool)
++		{
++			pRetval = dynamic_cast< EditEngineItemPool* >(pPool);
++		}
++	}
++
++	return pRetval;
++}
++
+ BinTextObject::BinTextObject( SfxItemPool* pP ) :
+ 	EditTextObject( EE_FORMAT_BIN ),
+     SfxItemPoolUser()
+@@ -608,9 +643,17 @@
+ 	nUserType = 0;
+ 	nObjSettings = 0;
+ 	pPortionInfo = 0;
+-	if ( pP )
++	
++	// #i101239# ensure target is a EditEngineItemPool, else
++	// fallback to pool ownership. This is needed to ensure that at
++	// pool destruction time of an alien pool, the pool is still alive.
++	// When registering would happen at an alien pool which just uses an
++	// EditEngineItemPool as some sub-pool, that pool could already
++	// be decoupled and deleted whcih would lead to crashes.
++	pPool =	getEditEngineItemPool(pP);
++	
++	if ( pPool )
+ 	{
+-		pPool =	pP;
+ 		bOwnerOfPool = FALSE;
+ 	}
+ 	else
+@@ -621,6 +664,7 @@
+ 
+     if(!bOwnerOfPool && pPool)
+     {
++		// it is sure now that the pool is an EditEngineItemPool
+         pPool->AddSfxItemPoolUser(*this);
+     }
+ 
+@@ -641,9 +685,12 @@
+ 	nScriptType = r.nScriptType;
+ 	pPortionInfo = NULL;	// PortionInfo nicht kopieren
+ 	bStoreUnicodeStrings = FALSE;
++
+ 	if ( !r.bOwnerOfPool )
+ 	{
+-		// Dann den Pool mitverwenden
++		// reuse alien pool; this must be a EditEngineItemPool
++		// since there is no other way to construct a BinTextObject
++		// than it's regular constructor where that is ensured
+ 		pPool =	r.pPool;
+ 		bOwnerOfPool = FALSE;
+ 	}
+@@ -656,6 +703,7 @@
+ 
+     if(!bOwnerOfPool && pPool)
+     {
++		// it is sure now that the pool is an EditEngineItemPool
+         pPool->AddSfxItemPoolUser(*this);
+     }
+ 


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/devel/openoffice.org.spec,v
retrieving revision 1.2010
retrieving revision 1.2011
diff -u -p -r1.2010 -r1.2011
--- openoffice.org.spec	15 Sep 2009 20:03:32 -0000	1.2010
+++ openoffice.org.spec	23 Sep 2009 15:09:30 -0000	1.2011
@@ -160,6 +160,7 @@ Patch83: openoffice.org-3.1.1.ooo104157.
 Patch84: workspace.dr69.patch
 Patch85: openoffice.org-3.1.1.ooo64671.canvas.add-support-for-font-pitch.patch
 Patch86: openoffice.org-3.1.1.oooXXXXXX.sal.justcoredump.patch
+Patch87: workspace.aw073.patch
 
 %define python_py_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(0)")
 %define instdir %{_libdir}
@@ -1706,6 +1707,7 @@ cat %{PATCH11} >> svtools/source/dialogs
 %patch84 -p0 -b .workspace.dr69.patch
 %patch85 -p0 -b .ooo64671.canvas.add-support-for-font-pitch.patch
 %patch86 -p1 -b .oooXXXXXX.sal.justcoredump.patch
+%patch87 -p0 -b .workspace.aw073.patch
 
 %build
 echo build start time is `date`, diskspace: `df -h . | tail -n 1`
@@ -4239,6 +4241,9 @@ fi
     unopkg list --shared > /dev/null 2>&1 || :
 
 %changelog
+* Wed Sep 23 2009 Caolán McNamara <caolanm at redhat.com> - 1:3.1.1-19.9
+- Resolves: rhbz#522839 crash on exit after loading .doc
+
 * Tue Sep 15 2009 Caolán McNamara <caolanm at redhat.com> - 1:3.1.1-19.8
 - disable NumberFormatRecognition from default writer configuration (caolanm)
 - Resolves: rhbz#522056 - wrong match of fonts (non-)proportional (dtardon)




More information about the fedora-extras-commits mailing list