[Libreoffice-commits] core.git: 7 commits - bridges/source ios/experimental ios/MobileLibreOffice ios/README ios/shared
Tor Lillqvist
tml at collabora.com
Mon Dec 23 03:00:32 PST 2013
bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-arm.cxx | 25 +
bridges/source/cpp_uno/gcc3_ios_arm/except.cxx | 129 +++++++---
bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl | 4
ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj | 6
ios/README | 30 ++
ios/experimental/LibreOffice/LibreOffice.xcodeproj/project.pbxproj | 8
ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj | 46 +++
ios/shared/ios_sharedlo.xcodeproj/project.pbxproj | 6
8 files changed, 201 insertions(+), 53 deletions(-)
New commits:
commit 0324a62e1977c60961cbf86e454e676d825a4e03
Author: Tor Lillqvist <tml at collabora.com>
Date: Mon Dec 23 11:29:14 2013 +0200
Add source files from bridges for quicker breakpoint setting
Change-Id: I7842d9d0e5786647d14d0c30be5230c05883ada2
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj b/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
index f236daf..73dfcf8e 100644
--- a/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
@@ -81,6 +81,25 @@
BE82BDAB182190E400A447B5 /* TiledView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TiledView.m; sourceTree = "<group>"; };
BE82BDAD1821A1D000A447B5 /* View.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = View.h; sourceTree = "<group>"; };
BE82BDAE1821A1D000A447B5 /* View.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = View.m; sourceTree = "<group>"; };
+ BE9F45F91868396500B8BE69 /* cpp2uno-arm.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "cpp2uno-arm.cxx"; path = "../../../bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-arm.cxx"; sourceTree = "<group>"; };
+ BE9F45FA1868396500B8BE69 /* cpp2uno-arm64.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "cpp2uno-arm64.cxx"; path = "../../../bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-arm64.cxx"; sourceTree = "<group>"; };
+ BE9F45FB1868396500B8BE69 /* cpp2uno-i386.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "cpp2uno-i386.cxx"; path = "../../../bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-i386.cxx"; sourceTree = "<group>"; };
+ BE9F45FC1868396500B8BE69 /* cpp2uno.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = cpp2uno.cxx; path = ../../../bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno.cxx; sourceTree = "<group>"; };
+ BE9F45FD1868396500B8BE69 /* except.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = except.cxx; path = ../../../bridges/source/cpp_uno/gcc3_ios_arm/except.cxx; sourceTree = "<group>"; };
+ BE9F45FE1868396500B8BE69 /* helper.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; name = helper.s; path = ../../../bridges/source/cpp_uno/gcc3_ios_arm/helper.s; sourceTree = "<group>"; };
+ BE9F45FF1868396500B8BE69 /* temp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = temp.cxx; path = ../../../bridges/source/cpp_uno/gcc3_ios_arm/temp.cxx; sourceTree = "<group>"; };
+ BE9F46001868396500B8BE69 /* uno2cpp-arm.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "uno2cpp-arm.cxx"; path = "../../../bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp-arm.cxx"; sourceTree = "<group>"; };
+ BE9F46011868396500B8BE69 /* uno2cpp-arm64.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "uno2cpp-arm64.cxx"; path = "../../../bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp-arm64.cxx"; sourceTree = "<group>"; };
+ BE9F46021868396500B8BE69 /* uno2cpp-i386.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "uno2cpp-i386.cxx"; path = "../../../bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp-i386.cxx"; sourceTree = "<group>"; };
+ BE9F46031868396500B8BE69 /* uno2cpp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = uno2cpp.cxx; path = ../../../bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp.cxx; sourceTree = "<group>"; };
+ BE9F4604186839C100B8BE69 /* bridge.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = bridge.cxx; path = ../../../bridges/source/cpp_uno/shared/bridge.cxx; sourceTree = "<group>"; };
+ BE9F4605186839C100B8BE69 /* component.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = component.cxx; path = ../../../bridges/source/cpp_uno/shared/component.cxx; sourceTree = "<group>"; };
+ BE9F4606186839C100B8BE69 /* cppinterfaceproxy.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = cppinterfaceproxy.cxx; path = ../../../bridges/source/cpp_uno/shared/cppinterfaceproxy.cxx; sourceTree = "<group>"; };
+ BE9F4607186839C100B8BE69 /* guardedarray.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = guardedarray.hxx; path = ../../../bridges/source/cpp_uno/shared/guardedarray.hxx; sourceTree = "<group>"; };
+ BE9F4608186839C100B8BE69 /* types.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = types.cxx; path = ../../../bridges/source/cpp_uno/shared/types.cxx; sourceTree = "<group>"; };
+ BE9F4609186839C100B8BE69 /* unointerfaceproxy.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = unointerfaceproxy.cxx; path = ../../../bridges/source/cpp_uno/shared/unointerfaceproxy.cxx; sourceTree = "<group>"; };
+ BE9F460A186839C100B8BE69 /* vtablefactory.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = vtablefactory.cxx; path = ../../../bridges/source/cpp_uno/shared/vtablefactory.cxx; sourceTree = "<group>"; };
+ BE9F460B186839C100B8BE69 /* vtables.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = vtables.cxx; path = ../../../bridges/source/cpp_uno/shared/vtables.cxx; sourceTree = "<group>"; };
BECAB371186054DE00F814F9 /* lo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = lo.mm; sourceTree = "<group>"; };
BEDB0F08185B7537009A6F26 /* lo.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = lo.xcconfig; path = ../../../lo.xcconfig; sourceTree = "<group>"; };
BEEE02CE1860ABB700FBDE67 /* program */ = {isa = PBXFileReference; lastKnownFileType = folder; name = program; path = Resources/program; sourceTree = SOURCE_ROOT; };
@@ -117,6 +136,7 @@
BE0898E61860D3CD0021A679 /* LibreOffice source files */ = {
isa = PBXGroup;
children = (
+ BE9F45F81868393D00B8BE69 /* bridges */,
BE0898E71860D3DA0021A679 /* vcl */,
);
name = "LibreOffice source files";
@@ -236,6 +256,32 @@
name = "Supporting Files";
sourceTree = "<group>";
};
+ BE9F45F81868393D00B8BE69 /* bridges */ = {
+ isa = PBXGroup;
+ children = (
+ BE9F4604186839C100B8BE69 /* bridge.cxx */,
+ BE9F4605186839C100B8BE69 /* component.cxx */,
+ BE9F4606186839C100B8BE69 /* cppinterfaceproxy.cxx */,
+ BE9F4607186839C100B8BE69 /* guardedarray.hxx */,
+ BE9F4608186839C100B8BE69 /* types.cxx */,
+ BE9F4609186839C100B8BE69 /* unointerfaceproxy.cxx */,
+ BE9F460A186839C100B8BE69 /* vtablefactory.cxx */,
+ BE9F460B186839C100B8BE69 /* vtables.cxx */,
+ BE9F45F91868396500B8BE69 /* cpp2uno-arm.cxx */,
+ BE9F45FA1868396500B8BE69 /* cpp2uno-arm64.cxx */,
+ BE9F45FB1868396500B8BE69 /* cpp2uno-i386.cxx */,
+ BE9F45FC1868396500B8BE69 /* cpp2uno.cxx */,
+ BE9F45FD1868396500B8BE69 /* except.cxx */,
+ BE9F45FE1868396500B8BE69 /* helper.s */,
+ BE9F45FF1868396500B8BE69 /* temp.cxx */,
+ BE9F46001868396500B8BE69 /* uno2cpp-arm.cxx */,
+ BE9F46011868396500B8BE69 /* uno2cpp-arm64.cxx */,
+ BE9F46021868396500B8BE69 /* uno2cpp-i386.cxx */,
+ BE9F46031868396500B8BE69 /* uno2cpp.cxx */,
+ );
+ name = bridges;
+ sourceTree = "<group>";
+ };
BEEEF9681860A21F00FBDE67 /* Resources */ = {
isa = PBXGroup;
children = (
commit 5dcd53835d1420e6421efd087d392f308c1df833
Author: Tor Lillqvist <tml at collabora.com>
Date: Mon Dec 23 11:13:11 2013 +0200
More informative logging
Change-Id: I71b04086ae0418f0a6c988fc71c1e5fee6eed690
diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-arm.cxx b/bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-arm.cxx
index 5de27f8..8883523 100644
--- a/bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-arm.cxx
+++ b/bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-arm.cxx
@@ -467,8 +467,11 @@ extern "C" sal_Int64 cpp_vtable_call( long *pFunctionAndOffset,
namespace
{
- unsigned char *codeSnippet(sal_Int32 functionIndex,
- sal_Int32 vtableOffset, bool bHasHiddenParam)
+ unsigned char *codeSnippet(const typelib_InterfaceTypeDescription *type,
+ const typelib_TypeDescription *member,
+ sal_Int32 functionIndex,
+ sal_Int32 vtableOffset,
+ bool bHasHiddenParam)
{
assert(functionIndex < nFunIndexes);
if (!(functionIndex < nFunIndexes))
@@ -484,7 +487,7 @@ namespace
int index = functionIndex*nVtableOffsets*2 + vtableOffset*2 + bHasHiddenParam;
unsigned char *result = ((unsigned char *) &codeSnippets) + codeSnippets[index];
- SAL_INFO( "bridges.ios", "codeSnippet: [" << functionIndex << "," << vtableOffset << "," << (int)bHasHiddenParam << "]=" << (void *) result << " (" << std::hex << ((int*)result)[0] << "," << ((int*)result)[1] << "," << ((int*)result)[2] << "," << ((int*)result)[3] << ")");
+ SAL_INFO( "bridges.ios", "codeSnippet(" << OUString(type->aBase.pTypeName) << "::" << OUString(member->pTypeName) << "): [" << functionIndex << "," << vtableOffset << "," << (int)bHasHiddenParam << "]=" << (void *) result << " (" << std::hex << ((int*)result)[0] << "," << ((int*)result)[1] << "," << ((int*)result)[2] << "," << ((int*)result)[3] << ")");
return result;
}
@@ -534,15 +537,16 @@ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( member );
// Getter:
- (s++)->fn = codeSnippet(
- functionOffset++, vtableOffset,
- arm::return_in_hidden_param( pAttrTD->pAttributeTypeRef ));
+ (s++)->fn = codeSnippet(type, member,
+ functionOffset++, vtableOffset,
+ arm::return_in_hidden_param( pAttrTD->pAttributeTypeRef ));
// Setter:
if (!pAttrTD->bReadOnly)
{
- (s++)->fn = codeSnippet(
- functionOffset++, vtableOffset, false);
+ (s++)->fn = codeSnippet(type, member,
+ functionOffset++, vtableOffset,
+ false);
}
break;
}
@@ -552,8 +556,9 @@ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
reinterpret_cast<
typelib_InterfaceMethodTypeDescription * >(member);
- (s++)->fn = codeSnippet(functionOffset++, vtableOffset,
- arm::return_in_hidden_param(pMethodTD->pReturnTypeRef));
+ (s++)->fn = codeSnippet(type, member,
+ functionOffset++, vtableOffset,
+ arm::return_in_hidden_param(pMethodTD->pReturnTypeRef));
break;
}
default:
diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx b/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx
index c398631..01690d3 100644
--- a/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx
@@ -119,8 +119,6 @@ void dummy_can_throw_anything( char const * )
static OUString toUNOname( char const * p ) SAL_THROW(())
{
- char const * start = p;
-
// example: N3com3sun4star4lang24IllegalArgumentExceptionE
OUStringBuffer buf( 64 );
@@ -144,8 +142,6 @@ static OUString toUNOname( char const * p ) SAL_THROW(())
OUString result( buf.makeStringAndClear() );
- SAL_INFO( "bridges.ios", "toUNOname(" << start << "): " << result );
-
return result;
}
@@ -207,11 +203,11 @@ std::type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SA
buf.append( 'E' );
OString symName( buf.makeStringAndClear() );
- SAL_INFO( "bridges.ios", "getRTTI: calling dlsym() for type_info for " << unoName );
rtti = (std::type_info *)dlsym( m_hApp, symName.getStr() );
if (rtti)
{
+ SAL_INFO( "bridges.ios", "getRTTI: dlsym() found type_info for " << unoName );
std::pair< t_rtti_map::iterator, bool > insertion(
m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
SAL_WARN_IF( !insertion.second,
commit 792c20bf589101e2e1a684d6afb002a4f1970a05
Author: Tor Lillqvist <tml at collabora.com>
Date: Mon Dec 23 02:05:57 2013 +0200
Let's try to use basically the same except.cxx for iOS as for OS X
Change-Id: Ic4cdf6b91f2a71fc556c8d9c2ba3808f0d953754
diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx b/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx
index e21dce7..c398631 100644
--- a/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx
@@ -17,8 +17,14 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <typeinfo>
+
#include <dlfcn.h>
+#if defined(MACOSX) && MACOSX_SDK_VERSION < 1070
#include <cxxabi.h>
+#endif
+
+#include <boost/static_assert.hpp>
#include <boost/unordered_map.hpp>
#include <rtl/strbuf.hxx>
@@ -34,26 +40,91 @@
#include "share.hxx"
-using namespace ::std;
using namespace ::osl;
-using namespace ::rtl;
using namespace ::com::sun::star::uno;
-using namespace ::__cxxabiv1;
-namespace CPPU_CURRENT_NAMESPACE
+namespace CPPU_CURRENT_NAMESPACE {
+
+namespace {
+
+struct Fake_type_info {
+ virtual ~Fake_type_info() {}
+ char const * name;
+};
+
+struct Fake_class_type_info: Fake_type_info {};
+
+#if defined(MACOSX) && MACOSX_SDK_VERSION < 1070
+BOOST_STATIC_ASSERT(
+ sizeof (Fake_class_type_info) == sizeof (__cxxabiv1::__class_type_info));
+#endif
+
+struct Fake_si_class_type_info: Fake_class_type_info {
+ void const * base;
+};
+
+#if defined(MACOSX) && MACOSX_SDK_VERSION < 1070
+BOOST_STATIC_ASSERT(
+ sizeof (Fake_si_class_type_info)
+ == sizeof (__cxxabiv1::__si_class_type_info));
+#endif
+
+struct Base {};
+struct Derived: Base {};
+
+std::type_info * createFake_class_type_info(char const * name) {
+ char * buf = new char[sizeof (Fake_class_type_info)];
+#if defined(MACOSX) && MACOSX_SDK_VERSION < 1070
+ assert(
+ dynamic_cast<__cxxabiv1::__class_type_info const *>(&typeid(Base))
+ != 0);
+#endif
+ *reinterpret_cast<void **>(buf) = *reinterpret_cast<void * const *>(
+ &typeid(Base));
+ // copy __cxxabiv1::__class_type_info vtable into place
+ Fake_class_type_info * fake = reinterpret_cast<Fake_class_type_info *>(buf);
+ fake->name = name;
+#ifdef _LIBCPP_NONUNIQUE_RTTI_BIT
+ *(uintptr_t*)(&fake->name) |= _LIBCPP_NONUNIQUE_RTTI_BIT;
+#endif
+ return reinterpret_cast<std::type_info *>(
+ static_cast<Fake_type_info *>(fake));
+}
+
+std::type_info * createFake_si_class_type_info(
+ char const * name, std::type_info const * base)
{
+ char * buf = new char[sizeof (Fake_si_class_type_info)];
+#if defined(MACOSX) && MACOSX_SDK_VERSION < 1070
+ assert(
+ dynamic_cast<__cxxabiv1::__si_class_type_info const *>(&typeid(Derived))
+ != 0);
+#endif
+ *reinterpret_cast<void **>(buf) = *reinterpret_cast<void * const *>(
+ &typeid(Derived));
+ // copy __cxxabiv1::__si_class_type_info vtable into place
+ Fake_si_class_type_info * fake
+ = reinterpret_cast<Fake_si_class_type_info *>(buf);
+ fake->name = name;
+ fake->base = base;
+ return reinterpret_cast<std::type_info *>(
+ static_cast<Fake_type_info *>(fake));
+}
+
+}
void dummy_can_throw_anything( char const * )
{
}
-//==================================================================================================
static OUString toUNOname( char const * p ) SAL_THROW(())
{
+ char const * start = p;
+
// example: N3com3sun4star4lang24IllegalArgumentExceptionE
OUStringBuffer buf( 64 );
- OSL_ASSERT( 'N' == *p );
+ assert( 'N' == *p );
++p; // skip N
while ('E' != *p)
@@ -73,13 +144,14 @@ static OUString toUNOname( char const * p ) SAL_THROW(())
OUString result( buf.makeStringAndClear() );
+ SAL_INFO( "bridges.ios", "toUNOname(" << start << "): " << result );
+
return result;
}
-//==================================================================================================
class RTTI
{
- typedef boost::unordered_map< OUString, const type_info *, OUStringHash > t_rtti_map;
+ typedef boost::unordered_map< OUString, std::type_info *, OUStringHash > t_rtti_map;
Mutex m_mutex;
t_rtti_map m_rttis;
@@ -91,27 +163,28 @@ public:
RTTI() SAL_THROW(());
~RTTI() SAL_THROW(());
- const type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW(());
+ std::type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW(());
};
-//__________________________________________________________________________________________________
+
RTTI::RTTI() SAL_THROW(())
: m_hApp( dlopen( 0, RTLD_LAZY ) )
{
+#if 0
// Insert commonly needed type_infos to avoid dlsym() calls
// Ideally we should insert all needed ones
m_rttis.insert( t_rtti_map::value_type( "com.sun.star.ucb.InteractiveAugmentedIOException",
&typeid( com::sun::star::ucb::InteractiveAugmentedIOException ) ) );
+#endif
}
-//__________________________________________________________________________________________________
+
RTTI::~RTTI() SAL_THROW(())
{
dlclose( m_hApp );
}
-//__________________________________________________________________________________________________
-const type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW(())
+std::type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW(())
{
- const type_info * rtti;
+ std::type_info * rtti;
OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName;
@@ -135,11 +208,11 @@ const type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) S
OString symName( buf.makeStringAndClear() );
SAL_INFO( "bridges.ios", "getRTTI: calling dlsym() for type_info for " << unoName );
- rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+ rtti = (std::type_info *)dlsym( m_hApp, symName.getStr() );
if (rtti)
{
- pair< t_rtti_map::iterator, bool > insertion(
+ std::pair< t_rtti_map::iterator, bool > insertion(
m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
SAL_WARN_IF( !insertion.second,
"bridges",
@@ -154,25 +227,26 @@ const type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) S
// we must generate it !
// symbol and rtti-name is nearly identical,
// the symbol is prefixed with _ZTI
- char const * rttiName = symName.getStr() +4;
+ char * rttiName = strdup(symName.getStr() + 4);
+ if (rttiName == 0) {
+ throw std::bad_alloc();
+ }
SAL_INFO( "bridges.ios", "getRTTI: generating typeinfo " << rttiName );
if (pTypeDescr->pBaseTypeDescription)
{
// ensure availability of base
- const type_info * base_rtti = getRTTI(
+ std::type_info * base_rtti = getRTTI(
(typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
- rtti = new __si_class_type_info(
- strdup( rttiName ), (__class_type_info *)base_rtti );
+ rtti = createFake_si_class_type_info(rttiName, base_rtti);
}
else
{
- // this class has no base class
- rtti = new __class_type_info( strdup( rttiName ) );
+ rtti = createFake_class_type_info(rttiName);
}
- pair< t_rtti_map::iterator, bool > insertion(
+ std::pair< t_rtti_map::iterator, bool > insertion(
m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
SAL_WARN_IF( !insertion.second,
"bridges",
@@ -192,7 +266,6 @@ const type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) S
return rtti;
}
-//--------------------------------------------------------------------------------------------------
static void deleteException( void * pExc )
{
__cxa_exception const * header = ((__cxa_exception const *)pExc - 1);
@@ -207,13 +280,12 @@ static void deleteException( void * pExc )
}
}
-//==================================================================================================
void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
{
SAL_INFO( "bridges.ios", "raiseException: " << *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ) );
void * pCppExc;
- const type_info * rtti;
+ std::type_info * rtti;
{
// construct cpp exception object
@@ -249,9 +321,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
}
}
rtti = s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
-
TYPELIB_DANGER_RELEASE( pTypeDescr );
- OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
+ assert( rtti );
if (! rtti)
{
throw RuntimeException(
@@ -261,10 +332,9 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
}
}
- __cxa_throw( pCppExc, (type_info *) rtti, deleteException );
+ __cxa_throw( pCppExc, rtti, deleteException );
}
-//==================================================================================================
void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
{
if (! header)
@@ -294,7 +364,6 @@ void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping
Reference< XInterface >() );
Type const & rType = ::getCppuType( &aRE );
uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
-
#if OSL_DEBUG_LEVEL > 0
OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
OSL_FAIL( cstr.getStr() );
commit 1d3b6ce74a70d1f8e53e8430c46f7f6cc7cf6ec1
Author: Tor Lillqvist <tml at collabora.com>
Date: Mon Dec 23 02:02:11 2013 +0200
Avoid Perl warnings
Change-Id: I62ade513bd98e5410c1df14e890e8cc964f1eb25
diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl
index 5150686..a854883 100755
--- a/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl
+++ b/bridges/source/cpp_uno/gcc3_ios_arm/generate-snippets.pl
@@ -47,8 +47,8 @@ printf ("#if defined(__arm) || defined(__arm64)\n");
printf ("\n");
printf ("// Each codeSnippetX function stores into ip (arm64: x15) an address and branches to _privateSnippetExecutor\n");
printf ("// The address is that following the branch instruction, containing two 32-bit ints:\n");
-printf ("// - the function index (for 32-bit can have the 0x80000000 bit set\n");
-printf ("// to indicate that a hidden parameter is used for returning large values)\n");
+printf ("// - the function index, which for 32-bit can have the 0x80000000 bit set\n");
+printf ("// to indicate that a hidden parameter is used for returning large values\n");
printf ("// - the vtable offset\n");
printf ("\n");
commit 5355fcc367822c4c0bb6cd4b121f5f8a5efbf4dc
Author: Tor Lillqvist <tml at collabora.com>
Date: Sun Dec 22 22:01:05 2013 +0200
Describe the apps
Change-Id: If07fe2ddc99bf2d2a9a4bc242be22fe615a5b1f9
diff --git a/ios/README b/ios/README
index 76a1299..e13c8c3 100644
--- a/ios/README
+++ b/ios/README
@@ -1 +1,29 @@
-iOS specific code and tests
+experimental iOS apps that use LibreOffice code.
+
+experimental/LibreOffice - Uses the "normal" desktop-style main loop
+and output mechanism to display the document, and also accepts input
+and selections. Broken since the tiled rendering changes. As tiled
+rendering seems to be what will/should be used, this app is of limited
+usefulness now. (Don't get excited by the name of this app, it was
+never intended to become a "complete" LibreOffice in any sense. In
+retrospect it was silly to call it just "LibreOffice.)
+
+Note that this app is built using gbuild: The executable as a normal
+executable from gbuild's perspective, and the app bundle then using a
+CustomTarget that constructs it. Its Xcode project has no normal
+"Compile Sources" or "Link Binary" build phases but instead a "Run
+Script" one that runs make.
+
+experimental/TiledLibreOffice - Uses tiled rendering and CATiledLayer.
+No input handling, but scrolling around and zooming around works
+nicely. Displays the number of tiles rendered per second. Also the
+name of this app is a bit too grandiose. Built by an Xcode project.
+(When built from the shell, running xcodebuild).
+
+MobileLibreOffice - Uses the code in "shared" subdirectory. Can be
+built in two configurations: 1) the "normal" configurations (Debug and
+Release) that matches experimental/LibreOffice in functionality, more
+or less. (But the coded is entirely differently structred.) But also
+this is currently broken, 2) the Debug_tile_tester configuration,
+where one can tweak tiling parameters and see a tile rendered. Also
+built by an Xcode project.
commit ee7689d052c229b9f254c8fd37ffaeb85e604a17
Author: Tor Lillqvist <tml at collabora.com>
Date: Sun Dec 22 21:56:43 2013 +0200
We seem to need lo.xcconfig here, too
Change-Id: I7db16b3736a83b9372aba11ac9ff302bc087e008
diff --git a/ios/experimental/LibreOffice/LibreOffice.xcodeproj/project.pbxproj b/ios/experimental/LibreOffice/LibreOffice.xcodeproj/project.pbxproj
index c538555..9c4aa9e 100644
--- a/ios/experimental/LibreOffice/LibreOffice.xcodeproj/project.pbxproj
+++ b/ios/experimental/LibreOffice/LibreOffice.xcodeproj/project.pbxproj
@@ -21,6 +21,7 @@
BE02DE57175F2E2A00ED4032 /* guess.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = guess.cxx; path = ../../../../sw/source/core/text/guess.cxx; sourceTree = "<group>"; };
BE08805B16FDB784000CED5C /* View.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = View.h; sourceTree = "<group>"; };
BE08805C16FDB784000CED5C /* View.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = View.m; sourceTree = "<group>"; };
+ BE1AB205186775FE008FFBF2 /* lo.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = lo.xcconfig; path = ../../../lo.xcconfig; sourceTree = "<group>"; };
BE2CB9601808247600953CB4 /* winproc.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = winproc.cxx; path = ../../../../vcl/source/window/winproc.cxx; sourceTree = "<group>"; };
BE2CB9611808297500953CB4 /* select.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = select.cxx; path = ../../../../sw/source/ui/wrtsh/select.cxx; sourceTree = "<group>"; };
BE2CB962180829DD00953CB4 /* txtcrsr.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = txtcrsr.cxx; path = ../../../../sw/source/ui/shells/txtcrsr.cxx; sourceTree = "<group>"; };
@@ -247,6 +248,7 @@
BE5A22601664F87600CF01C9 /* Supporting Files */ = {
isa = PBXGroup;
children = (
+ BE1AB205186775FE008FFBF2 /* lo.xcconfig */,
BE5A22611664F87600CF01C9 /* LibreOffice-Info.plist */,
BE5A22621664F87600CF01C9 /* InfoPlist.strings */,
BE5A22651664F87600CF01C9 /* main.m */,
@@ -424,6 +426,7 @@
/* Begin XCBuildConfiguration section */
BE5A22861664F87600CF01C9 /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = BE1AB205186775FE008FFBF2 /* lo.xcconfig */;
buildSettings = {
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -447,6 +450,7 @@
};
BE5A22871664F87600CF01C9 /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = BE1AB205186775FE008FFBF2 /* lo.xcconfig */;
buildSettings = {
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
commit 4a86b0f30156683012bb5d66fdfdc78e72befa1d
Author: Tor Lillqvist <tml at collabora.com>
Date: Sun Dec 22 21:28:22 2013 +0200
Add arm64 to VALID_ARCHS
Change-Id: Ibf1ed5ee1d7ab8319b393475c49655708e9a6d61
diff --git a/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj b/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj
index e0dcfc9..d9aefb1 100644
--- a/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj
+++ b/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj
@@ -950,7 +950,7 @@
SDKROOT = iphoneos;
STRIP_INSTALLED_PRODUCT = NO;
TARGETED_DEVICE_FAMILY = "1,2";
- VALID_ARCHS = armv7;
+ VALID_ARCHS = "armv7 arm64";
};
name = Debug;
};
@@ -995,7 +995,7 @@
STRIP_INSTALLED_PRODUCT = NO;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
- VALID_ARCHS = armv7;
+ VALID_ARCHS = "armv7 arm64";
};
name = Release;
};
@@ -1076,7 +1076,7 @@
SDKROOT = iphoneos;
STRIP_INSTALLED_PRODUCT = NO;
TARGETED_DEVICE_FAMILY = "1,2";
- VALID_ARCHS = armv7;
+ VALID_ARCHS = "armv7 arm64";
};
name = Debug_tile_tester;
};
diff --git a/ios/experimental/LibreOffice/LibreOffice.xcodeproj/project.pbxproj b/ios/experimental/LibreOffice/LibreOffice.xcodeproj/project.pbxproj
index 26b1df6..c538555 100644
--- a/ios/experimental/LibreOffice/LibreOffice.xcodeproj/project.pbxproj
+++ b/ios/experimental/LibreOffice/LibreOffice.xcodeproj/project.pbxproj
@@ -441,7 +441,7 @@
OTHER_LDFLAGS = "-v";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = 2;
- VALID_ARCHS = armv7;
+ VALID_ARCHS = "armv7 arm64";
};
name = Debug;
};
@@ -460,7 +460,7 @@
OTHER_LDFLAGS = "-v";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = 2;
- VALID_ARCHS = armv7;
+ VALID_ARCHS = "armv7 arm64";
};
name = Release;
};
diff --git a/ios/shared/ios_sharedlo.xcodeproj/project.pbxproj b/ios/shared/ios_sharedlo.xcodeproj/project.pbxproj
index 2c92795..ce0e346 100644
--- a/ios/shared/ios_sharedlo.xcodeproj/project.pbxproj
+++ b/ios/shared/ios_sharedlo.xcodeproj/project.pbxproj
@@ -617,7 +617,7 @@
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
- VALID_ARCHS = armv7;
+ VALID_ARCHS = "armv7 arm64";
};
name = Debug;
};
@@ -635,7 +635,7 @@
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
- VALID_ARCHS = armv7;
+ VALID_ARCHS = "armv7 arm64";
};
name = Release;
};
@@ -695,7 +695,7 @@
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
- VALID_ARCHS = armv7;
+ VALID_ARCHS = "armv7 arm64";
};
name = Debug_tile_tester;
};
More information about the Libreoffice-commits
mailing list