From 9be13fcc1dea3cdf5dec5d328780524d8815502b Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Thu, 4 Oct 2007 23:17:09 +0000 Subject: [PATCH] Convert return value of luaLength to be int --- src/addon/java/lua/addon/luacompat/LuaCompat.java | 2 +- src/main/java/lua/value/LString.java | 4 ++-- src/main/java/lua/value/LTable.java | 6 +++--- src/main/java/lua/value/LValue.java | 5 +++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/addon/java/lua/addon/luacompat/LuaCompat.java b/src/addon/java/lua/addon/luacompat/LuaCompat.java index 05bbf29b..378adb74 100644 --- a/src/addon/java/lua/addon/luacompat/LuaCompat.java +++ b/src/addon/java/lua/addon/luacompat/LuaCompat.java @@ -585,7 +585,7 @@ public class LuaCompat extends LFunction { if ( i == 0 ) i = 1; if ( j == 0 ) - j = list.luaLength().luaAsInt(); + j = list.luaLength(); vm.setResult(); for ( int k=i; k<=j; k++ ) vm.push( list.get(k) ); diff --git a/src/main/java/lua/value/LString.java b/src/main/java/lua/value/LString.java index c9030100..81705ab7 100644 --- a/src/main/java/lua/value/LString.java +++ b/src/main/java/lua/value/LString.java @@ -290,8 +290,8 @@ public class LString extends LValue { } /** Built-in opcode LEN, for Strings and Tables */ - public LValue luaLength() { - return LInteger.valueOf( length() ); + public int luaLength() { + return m_length; } public int luaGetType() { diff --git a/src/main/java/lua/value/LTable.java b/src/main/java/lua/value/LTable.java index e91142b6..574dc55a 100644 --- a/src/main/java/lua/value/LTable.java +++ b/src/main/java/lua/value/LTable.java @@ -235,14 +235,14 @@ public class LTable extends LValue { * as the C version in all cases, but that's ok because the length operation * on a table where the integer keys are sparse is vaguely defined. */ - public LValue luaLength() { + public int luaLength() { for ( int i = Math.max( 0, m_arrayEntries-1 ); i < m_vector.length; ++i ) { if ( m_vector[i] != LNil.NIL && ( i+1 == m_vector.length || m_vector[i+1] == LNil.NIL ) ) { - return LInteger.valueOf( i+1 ); + return i+1; } } - return LInteger.valueOf( 0 ); + return 0; } /** Valid for tables */ diff --git a/src/main/java/lua/value/LValue.java b/src/main/java/lua/value/LValue.java index f294fd45..43624c85 100644 --- a/src/main/java/lua/value/LValue.java +++ b/src/main/java/lua/value/LValue.java @@ -146,9 +146,10 @@ public class LValue { } /** Built-in opcode LEN, for Strings and Tables */ - public LValue luaLength() { + public int luaLength() { // TODO: call meta-method TM_LEN here - return luaUnsupportedOperation(); + luaUnsupportedOperation(); + return 0; } /** Valid for tables