Hello,

First try to remove call-catcher / bloat removal with sc/source/core/tool/chgtrack.cxx and sc/inc/chgtrack.hxx

I made a ./g grep AppendContent * on the whole project, i found it only on sc module
I made a build and this file compiled ok but i had an error after so...

I made a ./g grep dlsym * on sc and there was nothing, here is the details for the whole project :
ser...@serval:~/libreoffice-source/libo$ ./g grep dlsym *
===== main repo =====
soltools/checkdll/checkdll.c: if ( (pfun = (char *(*)(void))dlsym(phandle, psymbol)) != NULL ) {
===== artwork =====
===== base =====
===== calc =====
===== components =====
setup_native/scripts/source/getuid.c:            dlsym (RTLD_NEXT, "fstat");
setup_native/scripts/source/getuid.c:            dlsym (RTLD_NEXT, "chmod");
setup_native/scripts/source/getuid.c: dlsym (RTLD_NEXT, "fstatat64"); setup_native/scripts/source/getuid.c: dlsym (RTLD_NEXT, "__lxstat"); setup_native/scripts/source/getuid.c: dlsym (RTLD_NEXT, "__lxstat64");
===== extensions =====
===== extras =====
===== filters =====
===== help =====
===== impress =====
===== libs-core =====
shell/source/unix/misc/gnome-open-url.c: gchar* (* g_strdup)(const gchar*) = (gchar* (*)(const gchar*)) dlsym(handle, "g_strdup"); shell/source/unix/misc/gnome-open-url.c: (gboolean (*) (void)) dlsym(handle, "gnome_vfs_init"); shell/source/unix/misc/gnome-open-url.c: (GnomeVFSResult (*) (const char *)) dlsym(handle, "gnome_vfs_url_show");
===== libs-extern =====
===== libs-extern-sys =====
===== libs-gui =====
vcl/source/glyphs/gcach_ftyp.cxx: FT_Int *amajor, FT_Int *aminor, FT_Int *apatch))(sal_IntPtr)dlsym( RTLD_DEFAULT, "FT_Library_Version" ); vcl/source/glyphs/gcach_ftyp.cxx: pFTNewSize = (FT_Error(*)(FT_Face,FT_Size*))(sal_IntPtr)dlsym( RTLD_DEFAULT, "FT_New_Size" ); vcl/source/glyphs/gcach_ftyp.cxx: pFTActivateSize = (FT_Error(*)(FT_Size))(sal_IntPtr)dlsym( RTLD_DEFAULT, "FT_Activate_Size" ); vcl/source/glyphs/gcach_ftyp.cxx: pFTDoneSize = (FT_Error(*)(FT_Size))(sal_IntPtr)dlsym( RTLD_DEFAULT, "FT_Done_Size" ); vcl/source/glyphs/gcach_ftyp.cxx: pFTEmbolden = (FT_Error(*)(FT_GlyphSlot))(sal_IntPtr)dlsym( RTLD_DEFAULT, "FT_GlyphSlot_Embolden" ); vcl/source/glyphs/gcach_ftyp.cxx: pFTOblique = (FT_Error(*)(FT_GlyphSlot))(sal_IntPtr)dlsym( RTLD_DEFAULT, "FT_GlyphSlot_Oblique" ); vcl/source/glyphs/gcach_ftyp.cxx: // assume systems where dlsym is not possible use supplied library vcl/unx/source/app/i18n_wrp.cxx: g_open_im = (OpenFunction)(long)dlsym(g_dlmodule, "__XOpenIM");
===== postprocess =====
===== sdk =====
===== testing =====
===== ure =====
bridges/source/cpp_uno/gcc3_aix_powerpc/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_alpha/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx: dlsym(RTLD_DEFAULT, "__clear_cache"); bridges/source/cpp_uno/gcc3_linux_arm/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_hppa/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_intel/except.cxx: rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_intel/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_m68k/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_mips/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_s390/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx: rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() ); bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_os2_intel/except.cxx: //rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_os2_intel/except.cxx: rtti = (type_info *)dlsym( hmod, symName.getStr() ); bridges/source/cpp_uno/gcc3_solaris_intel/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); bridges/source/cpp_uno/gcc3_solaris_sparc/except.cxx: rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); pyuno/source/module/pyuno_dlopenwrapper.c: func = (void (*)())dlsym (h, "initpyuno");
sal/osl/unx/module.c:        fcnAddr = dlsym(Module, pSymbol);
sal/osl/unx/process_impl.cxx:    void * addr = dlsym (RTLD_DEFAULT, "main");
===== writer =====

How to be sure the function isn't called by dlsym ?
For example, must we check if a dlsym on the function AppendContent of the class chgtrack is called via a function of sal/osl/unx/module.c ?

Julien.
commit 6ac6f2458d5114af29428b94be40034bef636c7b
Author: serval <ser...@ilapharm.com>
Date:   Thu Dec 9 22:44:46 2010 +0100

    First try to remove of a call-catcher / bloat removal

diff --git a/sc/source/core/tool/chgtrack.cxx b/sc/source/core/tool/chgtrack.cxx
index baef1ae..63a1284 100644
--- a/sc/source/core/tool/chgtrack.cxx
+++ b/sc/source/core/tool/chgtrack.cxx
@@ -2743,24 +2743,6 @@ BOOL ScChangeTrack::IsMatrixFormulaRangeDifferent( const 
ScBaseCell* pOldCell,
     return nC1 != nC2 || nR1 != nR2;
 }
 
-
-void ScChangeTrack::AppendContent( const ScAddress& rPos,
-        const String& rNewValue, ScBaseCell* pOldCell )
-{
-    String aOldValue;
-    ScChangeActionContent::GetStringOfCell( aOldValue, pOldCell, pDoc, rPos );
-    if ( aOldValue != rNewValue ||
-            IsMatrixFormulaRangeDifferent( pOldCell, NULL ) )
-    {  // nur wirkliche Aenderung tracken
-        ScRange aRange( rPos );
-        ScChangeActionContent* pAct = new ScChangeActionContent( aRange );
-        pAct->SetOldValue( pOldCell, pDoc, pDoc );
-        pAct->SetNewValue( rNewValue, pDoc );
-        Append( pAct );
-    }
-}
-
-
 void ScChangeTrack::AppendContent( const ScAddress& rPos,
         const ScBaseCell* pOldCell, ULONG nOldFormat, ScDocument* pRefDoc )
 {
commit 85f50f62704db5534b6997f596e103b4b1d27068
Author: serval <ser...@ilapharm.com>
Date:   Thu Dec 9 23:26:03 2010 +0100

    Remove of the virtual function AppendContent

diff --git a/sc/inc/chgtrack.hxx b/sc/inc/chgtrack.hxx
index e733509..c78b4fc 100644
--- a/sc/inc/chgtrack.hxx
+++ b/sc/inc/chgtrack.hxx
@@ -1248,11 +1248,6 @@ public:
                                 // nicht anders geht (setzen nur String fuer
                                 // NewValue bzw. Formelerzeugung)
 
-                                // bevor neuer Wert im Dokument gesetzt wird
-            void                               AppendContent( const ScAddress& 
rPos,
-                                    const String& rNewValue,
-                                    ScBaseCell* pOldCell );
-
     SC_DLLPUBLIC               void                            AppendInsert( 
const ScRange& );
 
                                 // pRefDoc may be NULL => no lookup of contents
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to