diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/BLua.cc | 56 | 
1 files changed, 1 insertions, 55 deletions
| diff --git a/lib/BLua.cc b/lib/BLua.cc index ec62a8e..a8751be 100644 --- a/lib/BLua.cc +++ b/lib/BLua.cc @@ -17,7 +17,7 @@   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   */ -/* $Id: BLua.cc,v 1.60 2008-05-20 18:11:51 pixel Exp $ */ +/* $Id: BLua.cc,v 1.61 2008-07-05 06:24:05 pixel Exp $ */  #include <stdlib.h>  #include "BLua.h" @@ -95,10 +95,8 @@ std::map<lua_State *, Lua *> Lua::lualist;  int LuaStatics::luaerror(lua_State * __L) {      Lua * L = Lua::find(__L); -    L->lock();      L->push_lua_context();      L->showerror(); -    L->unlock();      return 0;  } @@ -110,10 +108,8 @@ int LuaStatics::trueluapanic(lua_State * __L) throw (GeneralException) {      Lua * L = Lua::find(__L);      if (L->is_protected())          return 0;  // luaerror will get it for us... -    L->lock();      L->push_lua_context();      L->showerror(); -    L->unlock();      throw LuaException("Unprotected error running Lua code, bailing out; expect unstable lua environment.");  } @@ -254,10 +250,8 @@ int LuaStatics::getglobal(lua_State * _L) {      Buffer b;      b << "return " + L->tostring(); -    L->lock();      L->load(&b, false);      L->call(0, 1); -    L->unlock();      return 1;  } @@ -489,7 +483,6 @@ Lua::Lua(const Lua & l) throw (GeneralException) {  }  void Lua::open_base() { -    lock();      luaopen_base(L);      push("mkdir");      push(LuaStatics::mkdir); @@ -498,82 +491,63 @@ void Lua::open_base() {      push("mkdir");      push(LuaStatics::mkdir);      settable(LUA_GLOBALSINDEX); -    unlock();  }  void Lua::open_table() { -    lock();      luaopen_table(L);      lua_pop(L, 1); -    unlock();  }  void Lua::open_io(bool safe) { -    lock();      luaopen_io(L);      lua_pop(L, 1); -    unlock();  }  void Lua::open_string() { -    lock();      luaopen_string(L);      push("iconv");      push(LuaStatics::iconv);      settable();      lua_pop(L, 1); -    unlock();  }  void Lua::open_math() { -    lock();      luaopen_math(L);      lua_pop(L, 1); -    unlock();  }  void Lua::open_debug() { -    lock();      luaopen_debug(L);      lua_pop(L, 1); -    unlock();  }  void Lua::open_dir() { -    lock();      luaopen_dir(L);      lua_pop(L, 1); -    unlock();  }  void Lua::declarefunc(const String & name, lua_CFunction f, int i) { -    lock();      lua_pushstring(L, name.to_charp());      lua_pushcfunction(L, f);      lua_settable(L, i); -    unlock();  }  void Lua::call(const String & f, int i, int nargs, int nresults) { -    lock();      lua_pushstring(L, f.to_charp());      lua_gettable(L, i);      lua_insert(L, -1 - nargs - nresults);      call(nargs, nresults); -    unlock();  }  void Lua::call(int nargs, int nresults) throw(GeneralException) {      int r; -    lock();      lua_pushcfunction(L, LuaStatics::luaerror);      lua_insert(L, 1);      _protected = true;      r = lua_pcall(L, nargs, nresults, 1);      _protected = false;      lua_remove(L, 1); -    unlock();      switch(r) {      case 0: @@ -684,10 +658,8 @@ void Lua::getglobal(const String & name) throw (GeneralException) {      b << "return " + name;      try { -        lock();  	load(&b, false);  	call(0, 1); -        unlock();      }      catch (LuaException &) {  	throw LuaException("Error finding global variable `" + name + "'"); @@ -766,7 +738,6 @@ bool Lua::islightuserdata(int i) {  bool Lua::isobject(int i) {      bool r = false; -    lock();      if (istable(i)) {          push("__obj");          gettable(i); @@ -775,7 +746,6 @@ bool Lua::isobject(int i) {      } else {          r = isnil(i);      } -    unlock();      return r;  } @@ -873,8 +843,6 @@ void Lua::load(Handle * h, bool docall) throw (GeneralException) {      lf.f = h; -    if (docall) -        lock();      status = lua_load(L, LuaStatics::getF, &lf, h->GetName().to_charp());      if (status) { @@ -885,7 +853,6 @@ void Lua::load(Handle * h, bool docall) throw (GeneralException) {      if (docall) {          call(); -        unlock();      }  } @@ -893,9 +860,6 @@ void Lua::load(const String & s, bool docall) throw (GeneralException) {      const char * buf = s.to_charp();      int status; -    if (docall) -        lock(); -      status = luaL_loadbuffer(L, buf, s.strlen(), buf);      if (status) { @@ -906,7 +870,6 @@ void Lua::load(const String & s, bool docall) throw (GeneralException) {      if (docall) {  	call(); -        unlock();      }  } @@ -1079,7 +1042,6 @@ int Lua::yield(int nresults) {  bool Lua::resume(int nargs) throw (GeneralException) {      int r; -    lock();      _protected = true;      r = lua_resume(L, nargs);      _protected = false; @@ -1089,8 +1051,6 @@ bool Lua::resume(int nargs) throw (GeneralException) {          showerror();      } -    unlock(); -      switch(r) {      case 0:          return false; @@ -1112,10 +1072,8 @@ bool Lua::resume(int nargs) throw (GeneralException) {  bool Lua::resume(Handle * h, int nargs) {      bool r; -    lock();      load(h, false);      r = resume(nargs); -    unlock();      return r;  } @@ -1123,10 +1081,8 @@ bool Lua::resume(Handle * h, int nargs) {  bool Lua::resume(const String & s, int nargs) {      bool r; -    lock();      load(s, false);      r = resume(nargs); -    unlock();      return r;  } @@ -1230,17 +1186,14 @@ void LuaObject::push(Lua * L) throw (GeneralException) {      if (pushed && wantdestruct) {  	throw GeneralException("Error: object is owned by the LUA script and can not be pushed.");      } -    L->lock();      L->newtable();      pushmembers(L); -    L->unlock();      pushed = true;  }  void LuaObject::pushme(Lua * L, void * o, const String & objname, bool obj) {      void ** u;      bool * b; -    L->lock();      L->push("__obj");      u = (void **) L->newuser(sizeof(o) + sizeof(bool));      *u = o; @@ -1252,7 +1205,6 @@ void LuaObject::pushme(Lua * L, void * o, const String & objname, bool obj) {          L->push(objname);          L->settable(-3, true);      } -    L->unlock();  }  void * LuaObject::getme(Lua * L, int i) { @@ -1276,15 +1228,12 @@ void * LuaObject::getme(Lua * L, int i) {  }  void LuaObject::pushit(Lua * L, const String & s, lua_CFunction f) { -    L->lock();      L->push(s);      L->push(f);      L->settable(-3, true); -    L->unlock();  }  void LuaObject::pushmeta(Lua * L, const String & s, lua_CFunction f) { -    L->lock();      if (!L->getmetatable()) {  	L->newtable();      } @@ -1292,21 +1241,18 @@ void LuaObject::pushmeta(Lua * L, const String & s, lua_CFunction f) {      L->push(f);      L->settable();      L->setmetatable(); -    L->unlock();  }  void LuaObject::pushdestruct(Lua * L) throw (GeneralException) {      if (pushed) {  	throw GeneralException("Error: can't push destructor, object already pushed");      } -    L->lock();      push(L);      L->push("__obj");      L->gettable(-2, true);      pushmeta(L, "__gc", LuaStatics::collector);      L->pop();      pushit(L, "destroy", LuaStatics::destructor); -    L->unlock();      wantdestruct = true;  } | 
