diff options
author | nobody <nobody@gnome.org> | 2006-04-14 17:06:41 +0000 |
---|---|---|
committer | nobody <nobody@gnome.org> | 2006-04-14 17:06:41 +0000 |
commit | 82399aabe1fba577ff8cb47639903a2e3ae152be (patch) | |
tree | 4cfad3c643c91fe888eb47821e455b9360a65b90 | |
parent | 993c6225f067b7510763a5fd37a3284bbf71668a (diff) |
This commit was manufactured by cvs2svn to create tagOPENSUSE_10_1_ANCHOR
'OPENSUSE_10_1_ANCHOR'.
-rw-r--r-- | patches/src680/framework-check-items.diff | 16 | ||||
-rw-r--r-- | patches/src680/speed-local-link.diff | 142 |
2 files changed, 158 insertions, 0 deletions
diff --git a/patches/src680/framework-check-items.diff b/patches/src680/framework-check-items.diff new file mode 100644 index 000000000..9a2639289 --- /dev/null +++ b/patches/src680/framework-check-items.diff @@ -0,0 +1,16 @@ +Index: framework/source/uielement/menubarmanager.cxx +=================================================================== +RCS file: /cvs/framework/framework/source/uielement/menubarmanager.cxx,v +retrieving revision 1.30 +diff -u -r1.30 menubarmanager.cxx +--- framework/source/uielement/menubarmanager.cxx 5 Jan 2006 18:11:17 -0000 1.30 ++++ framework/source/uielement/menubarmanager.cxx 21 Mar 2006 13:05:54 -0000 +@@ -733,6 +733,8 @@ + // Checkmark + m_pVCLMenu->ShowItem( pMenuItemHandler->nItemId, TRUE ); + m_pVCLMenu->CheckItem( pMenuItemHandler->nItemId, bCheckmark ); ++ m_pVCLMenu->SetItemBits( pMenuItemHandler->nItemId, ++ m_pVCLMenu->GetItemBits( pMenuItemHandler->nItemId ) | MIB_CHECKABLE ); + } + else if ( Event.State >>= aItemText ) + { diff --git a/patches/src680/speed-local-link.diff b/patches/src680/speed-local-link.diff new file mode 100644 index 000000000..690e1c84a --- /dev/null +++ b/patches/src680/speed-local-link.diff @@ -0,0 +1,142 @@ +Index: cppuhelper/source/shlib.cxx +=================================================================== +RCS file: /cvs/udk/cppuhelper/source/shlib.cxx,v +retrieving revision 1.22 +diff -u -p -u -r1.22 shlib.cxx +--- cppuhelper/source/shlib.cxx 8 Sep 2005 09:29:11 -0000 1.22 ++++ cppuhelper/source/shlib.cxx 3 Apr 2006 09:50:34 -0000 +@@ -272,6 +272,114 @@ static OUString makeComponentPath( + return out; + } + ++#ifdef LINUX ++static bool ++lcl_isWellKnownInternal(const OString &rLibName) ++{ ++ // These are loaded at startup ... ++ static const char *pLookup[] = { ++ "behelper.uno.so", ++ "configmgr2.uno.so", ++ "fsstorage.uno.so", ++ "gconfbe1.uno.so", ++ "i18npool.uno.so", ++ "introspection.uno.so", ++ "libanimcore.so", ++ "libevtatt.so", ++ "libfileacc.so", ++ "libgcc3_uno.so", ++ "liblocaledata_en.so", ++ "liblocaledata_es.so", ++ "liblocaledata_euro.so", ++ "liblocaledata_others.so", ++ "libmcnttype.so", ++ "libpackage2.so", ++ "libreg.so.3", ++ "libsrtrs1.so", ++ "libucb1.so", ++ "libucpfile1.so", ++ "libxstor.so", ++ "localebe1.uno.so", ++ "implreg.uno.so", ++ "nestedreg.uno.so", ++ "regtypeprov.uno.so", ++ "security.uno.so", ++ "servicemgr.uno.so", ++ "shlibloader.uno.so", ++ "simplereg.uno.so", ++ "typemgr.uno.so", ++ "reflection.uno.so", ++ "sax.uno.so", ++ "streams.uno.so", ++ "sysmgr1.uno.so", ++ "typeconverter.uno.so", ++ "ucpgvfs1.uno.so", ++ "uriproc.uno.so", ++ NULL ++ }; ++ ++ // Perhaps do some cunning binary search ? ++ for (int i = 0; pLookup[i] != NULL; i++) ++ if (!rLibName.match (pLookup[i])) ++ return true; ++ ++ return false; ++} ++ ++// bootstrap.cxx ++OUString const & get_this_libpath(); ++ ++// Amusing hack to get 40% win on linking / startup speedup: ++// Rational: we load all of OO.o's exception symbols in a signal, global ++// shlib once first of all (RTLD_GLOBAL). This allows us to load all ++// subsequent components RTLD_LOCAL, their vague linkage symbols will ++// resolve in the global scope. ++static bool ++lcl_isInternalLibrary(OUString const & rLibName, OUString const & rPath) ++{ ++ if (getenv ("OOO_DISABLE_INTERNAL")) ++ return false; ++ ++ bool bIsInternal = false; ++ ++ // Is this an internal library ? ++ if (rPath.getLength() > 0 && rPath != get_this_libpath()) ++ { ++ // fprintf (stderr, "Lib path '%s' - not internal!\n", ++ // (const sal_Char *)rtl::OUStringToOString(rPath, RTL_TEXTENCODING_ASCII_US)); ++ return false; ++ } ++ ++ sal_Int32 nUpd = SUPD; ++ OUString aIntSuffix = OUString::valueOf(nUpd) + OUSTR("li.so"); ++ if (rLibName.match (aIntSuffix)) ++ bIsInternal = true; ++ ++ if (!bIsInternal) ++ bIsInternal = lcl_isWellKnownInternal( ++ OUStringToOString(rLibName, RTL_TEXTENCODING_UTF8)); ++ ++ // If internal - load the exception type library RTLD_GLOBAL first ++ static bool bHaveLoadedExcepts = false; ++ if (bIsInternal && !bHaveLoadedExcepts) ++ { ++ rtl::OUString aExceptName = rtl::OUString::createFromAscii("libexlink") + aIntSuffix; ++ oslModule nExceptLib = osl_loadModule(aExceptName.pData, ++ SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL); ++ if (nExceptLib != NULL) ++ bHaveLoadedExcepts = true; ++ else ++ bIsInternal = false; ++ } ++ ++// fprintf (stderr, "Lib name '%s' %d %d\n", ++// (const sal_Char *)rtl::OUStringToOString(rLibName, RTL_TEXTENCODING_ASCII_US), ++// bIsInternal, bHaveLoadedExcepts); ++ ++ return bIsInternal; ++} ++#endif ++ + //============================================================================== + Reference< XInterface > SAL_CALL loadSharedLibComponentFactory( + OUString const & rLibName, OUString const & rPath, +@@ -288,9 +396,17 @@ Reference< XInterface > SAL_CALL loadSha + aModulePath, + Reference< XInterface >() ); + } ++ ++ sal_Int32 nFlags = SAL_LOADMODULE_LAZY; ++#ifdef LINUX ++ if (!lcl_isInternalLibrary (rLibName, rPath)) ++ nFlags |= SAL_LOADMODULE_GLOBAL; ++// else - faster local only binding ++#else ++ nFlags |= SAL_LOADMODULE_GLOBAL; ++#endif + +- oslModule lib = osl_loadModule( +- aModulePath.pData, SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL ); ++ oslModule lib = osl_loadModule(aModulePath.pData, nFlags); + if (! lib) + { + throw loader::CannotActivateFactoryException( |