From 39b2de7545780d8897c9f28cbedfefd672cd53d7 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Fri, 12 Aug 2011 00:08:26 -0400 Subject: Code page should be the same for the same drawing page. This removes O(n^2) from the process of querying the code pages for form elements. --- forms/source/misc/InterfaceContainer.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'forms') diff --git a/forms/source/misc/InterfaceContainer.cxx b/forms/source/misc/InterfaceContainer.cxx index 9c25049affb8..e1608ec1d4d2 100644 --- a/forms/source/misc/InterfaceContainer.cxx +++ b/forms/source/misc/InterfaceContainer.cxx @@ -148,7 +148,15 @@ void OInterfaceContainer::impl_addVbEvents_nolck_nothrow( const sal_Int32 i_nIn if ( xElementAsForm.is() ) break; - ::rtl::OUString sCodeName( xNameQuery->getCodeNameForObject( xElement ) ); + rtl::OUString sCodeName; + { + Reference xThis = static_cast(this); + sal_Int32 nPageIndex = xNameQuery->getPageIndexForObject(xThis); + if (nPageIndex >= 0) + sCodeName = xNameQuery->getCodeNameByIndex(nPageIndex); + else + sCodeName = xNameQuery->getCodeNameForObject(xElement); + } Reference< XPropertySet > xProps( xElement, UNO_QUERY_THROW ); ::rtl::OUString sServiceName; -- cgit