aboutsummaryrefslogtreecommitdiff
path: root/engines/sword25
diff options
context:
space:
mode:
authormd52011-05-14 12:32:34 +0300
committermd52011-05-14 12:32:34 +0300
commitdcf9daf4cff0c74fd8533436d479d7c224bfb246 (patch)
tree6312b28c27b682042ce25d59a672a26c8943db1f /engines/sword25
parent3537456eb51ed65b67c888ef01a0638719410fdb (diff)
downloadscummvm-rg350-dcf9daf4cff0c74fd8533436d479d7c224bfb246.tar.gz
scummvm-rg350-dcf9daf4cff0c74fd8533436d479d7c224bfb246.tar.bz2
scummvm-rg350-dcf9daf4cff0c74fd8533436d479d7c224bfb246.zip
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...
Diffstat (limited to 'engines/sword25')
-rw-r--r--engines/sword25/util/lua/luaconf.h14
-rw-r--r--engines/sword25/util/lua/lvm.cpp7
2 files changed, 13 insertions, 8 deletions
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 */