follow fail pattern for addUser: throw on bad arg, nil on bad result

closes #2156
This commit is contained in:
payonel 2018-02-20 07:44:41 -08:00
parent e91b8c0971
commit f11d384b51

View File

@ -77,15 +77,18 @@ class ComputerAPI(owner: NativeLuaArchitecture) extends NativeLuaAPI(owner) {
})
lua.setField(-2, "users")
lua.pushScalaFunction(lua => try {
machine.addUser(lua.checkString(1))
lua.pushBoolean(true)
1
} catch {
case e: Throwable =>
lua.pushNil()
lua.pushString(Option(e.getMessage).getOrElse(e.toString))
2
lua.pushScalaFunction(lua => {
val user = lua.checkString(1)
try {
machine.addUser(user)
lua.pushBoolean(true)
1
} catch {
case e: Throwable =>
lua.pushNil()
lua.pushString(Option(e.getMessage).getOrElse(e.toString))
2
}
})
lua.setField(-2, "addUser")