From dcf9daf4cff0c74fd8533436d479d7c224bfb246 Mon Sep 17 00:00:00 2001 From: md5 Date: Sat, 14 May 2011 12:32:34 +0300 Subject: SWORD25 (LUA): Some compilation optimizations For Android, define stroll() inside luaconf.h For PS2, don't use the visibility attribute, as the PS2 gcc isn't particularly happy about it... --- engines/sword25/util/lua/luaconf.h | 14 +++++++++++++- engines/sword25/util/lua/lvm.cpp | 7 ------- 2 files changed, 13 insertions(+), 8 deletions(-) (limited to 'engines/sword25') diff --git a/engines/sword25/util/lua/luaconf.h b/engines/sword25/util/lua/luaconf.h index 669b0e7a49..ddd6c8184e 100644 --- a/engines/sword25/util/lua/luaconf.h +++ b/engines/sword25/util/lua/luaconf.h @@ -18,6 +18,14 @@ ** =================================================================== */ +#if defined(__ANDROID__) +/* Android is missing strcoll(). +** For more information, refer to: +** http://www.damonkohler.com/2008/12/lua-on-android.html +*/ +#define strcoll strcmp +#endif + /* @@ LUA_ANSI controls the use of non-ansi features. @@ -183,7 +191,11 @@ #define LUAI_DATA /* empty */ #elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ - defined(__ELF__) + defined(__ELF__) && !defined(__PLAYSTATION2__) +/* +** The PS2 gcc compiler doesn't like the visibility attribute, so +** we use the normal "extern" definitions in the block below +*/ #define LUAI_FUNC __attribute__((visibility("hidden"))) extern #define LUAI_DATA LUAI_FUNC diff --git a/engines/sword25/util/lua/lvm.cpp b/engines/sword25/util/lua/lvm.cpp index aee31064ff..ae70fe2645 100644 --- a/engines/sword25/util/lua/lvm.cpp +++ b/engines/sword25/util/lua/lvm.cpp @@ -202,14 +202,7 @@ static int l_strcmp (const TString *ls, const TString *rs) { const char *r = getstr(rs); size_t lr = rs->tsv.len; for (;;) { -#if defined(__ANDROID__) - // Android is missing strcoll(). - // For more information, refer to: - // http://www.damonkohler.com/2008/12/lua-on-android.html - int temp = strcmp(l, r); -#else int temp = strcoll(l, r); -#endif if (temp != 0) return temp; else { /* strings are equal up to a `\0' */ size_t len = strlen(l); /* index of first `\0' in both strings */ -- cgit v1.2.3