From b8d0191dc99a7413e562c6aa71a3524d78237d70 Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Sat, 24 May 2008 00:45:57 +0000 Subject: [PATCH] Fix require return value --- src/core/org/luaj/lib/PackageLib.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core/org/luaj/lib/PackageLib.java b/src/core/org/luaj/lib/PackageLib.java index b491ae9a..7cf165cf 100644 --- a/src/core/org/luaj/lib/PackageLib.java +++ b/src/core/org/luaj/lib/PackageLib.java @@ -315,12 +315,12 @@ public class PackageLib extends LFunction { vm.call( 1, 1 ); /* run loaded module */ if ( ! vm.isnil(-1) ) /* non-nil return? */ LOADED.luaSetTable(vm, LOADED, name, vm.topointer(-1) ); /* _LOADED[name] = returned value */ - if ( LOADED.luaGetTable(vm, LOADED, name) == _SENTINEL ) { /* module did not set a value? */ - LOADED.luaSetTable(vm, LOADED, name, LBoolean.TRUE ); /* _LOADED[name] = true */ - vm.pushboolean(true); + LValue result = LOADED.luaGetTable(vm, LOADED, name); + if ( result == _SENTINEL ) { /* module did not set a value? */ + LOADED.luaSetTable(vm, LOADED, name, result=LBoolean.TRUE ); /* _LOADED[name] = true */ } - vm.replace(1); - vm.settop(1); + vm.resettop(); + vm.pushlvalue(result); } public static void loadlib( LuaState vm ) {