PATCH: fix stale pointer access in fp_TextRun.cpp

From: Robert Wilhelm <robert.wilhelm_at_gmx.net>
Date: Wed Sep 28 2005 - 21:21:26 CEST

Attached patch fixes the valgrind trace from
http://bugzilla.abisource.com/show_bug.cgi?id=9434#c9

Ok to commit?

row

RCS file: /cvsroot/abi/src/text/fmt/xp/fp_TextRun.cpp,v
retrieving revision 1.360
diff -u -r1.360 fp_TextRun.cpp
--- fp_TextRun.cpp 15 Sep 2005 02:37:51 -0000 1.360
+++ fp_TextRun.cpp 28 Sep 2005 17:50:07 -0000
@@ -251,10 +251,9 @@
        const XML_Char * pszLanguage =
PP_evalProperty("lang",pSpanAP,pBlockAP,p SectionAP, pDoc, true);

        const XML_Char * pszOldLanguage = m_pLanguage;
- FREEP(m_pLanguage);
- m_pLanguage = UT_strdup(lls.getCodeFromCode(pszLanguage));
- xxx_UT_DEBUGMSG(("!!!!!!!! Language of run set to %s pointer %x
run %x \ n",getLanguage(),m_pLanguage,this));
- if(pszOldLanguage && (UT_strcmp(m_pLanguage,pszOldLanguage) !=
0))
+ const XML_Char * pszNewLanguage =
UT_strdup(lls.getCodeFromCode(pszLangu age));
+ xxx_UT_DEBUGMSG(("!!!!!!!! Language of run set to %s pointer %x
run %x \ n",getLanguage(),pszNewLanguage,this));
+ if(pszOldLanguage && (UT_strcmp(pszNewLanguage,pszOldLanguage) !
= 0))
        {
                UT_uint32 reason = 0;
                if( getBlock()->getDocLayout()->getAutoSpellCheck())
@@ -268,6 +267,8 @@

getBlock()->getDocLayout()->queueBlockForBackgroundCheck(reason,
getBlock());
                bChanged = true;
        }
+ FREEP(m_pLanguage);
+ m_pLanguage = pszNewLanguage;

-- 
Robert Wilhelm <robert.wilhelm@gmx.net>
Received on Wed Sep 28 21:22:21 2005

This archive was generated by hypermail 2.1.8 : Wed Sep 28 2005 - 21:22:22 CEST