From 02f8452515233c6ec068b69b808d50a8dd77b16d Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Sat, 24 May 2008 00:43:39 +0000 Subject: [PATCH] Fix require sentinel logic --- src/core/org/luaj/lib/PackageLib.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/core/org/luaj/lib/PackageLib.java b/src/core/org/luaj/lib/PackageLib.java index b8a0380b..b491ae9a 100644 --- a/src/core/org/luaj/lib/PackageLib.java +++ b/src/core/org/luaj/lib/PackageLib.java @@ -286,7 +286,7 @@ public class PackageLib extends LFunction { vm.pushlvalue( loaded ); return; } - vm.settop(0); + vm.resettop(); /* else must load it; iterate over available loaders */ LValue val = pckg.luaGetTable(vm, pckg, _LOADERS); @@ -315,12 +315,11 @@ 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 */ - LOADED.luaGetTable(vm, LOADED, name); - if ( vm.topointer(-1) == _SENTINEL ) { /* module did not set a 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); } - vm.insert(1); + vm.replace(1); vm.settop(1); }