diff options
Diffstat (limited to 'upb/bindings')
-rw-r--r-- | upb/bindings/lua/upb/pb.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/upb/bindings/lua/upb/pb.c b/upb/bindings/lua/upb/pb.c index 466e8f7..bca2ee8 100644 --- a/upb/bindings/lua/upb/pb.c +++ b/upb/bindings/lua/upb/pb.c @@ -13,21 +13,13 @@ static int lupb_pb_decode(lua_State *L) { size_t len; - upb_status status = UPB_STATUS_INIT; const upb_msglayout *layout; upb_msg *msg = lupb_msg_checkmsg2(L, 1, &layout); const char *pb = lua_tolstring(L, 2, &len); upb_stringview buf = upb_stringview_make(pb, len); - upb_env env; - upb_env_init(&env); - upb_env_reporterrorsto(&env, &status); - - upb_decode(buf, msg, (const void*)layout, &env); - - /* Free resources before we potentially bail on error. */ - upb_env_uninit(&env); - lupb_checkstatus(L, &status); + upb_decode(buf, msg, layout); + /* TODO(haberman): check for error. */ return 0; } @@ -35,21 +27,19 @@ static int lupb_pb_decode(lua_State *L) { static int lupb_pb_encode(lua_State *L) { const upb_msglayout *layout; const upb_msg *msg = lupb_msg_checkmsg2(L, 1, &layout); - upb_env env; + upb_arena arena; size_t size; - upb_status status = UPB_STATUS_INIT; char *result; - upb_env_init(&env); - upb_env_reporterrorsto(&env, &status); + upb_arena_init(&arena); - result = upb_encode(msg, (const void*)layout, &env, &size); + result = upb_encode(msg, (const void*)layout, &arena, &size); /* Free resources before we potentially bail on error. */ - upb_env_uninit(&env); - lupb_checkstatus(L, &status); - lua_pushlstring(L, result, size); + upb_arena_uninit(&arena); + /* TODO(haberman): check for error. */ + return 1; } |