summaryrefslogtreecommitdiff
path: root/upb/bindings
diff options
context:
space:
mode:
authorJosh Haberman <jhaberman@gmail.com>2016-12-06 23:42:01 -0800
committerJosh Haberman <jhaberman@gmail.com>2016-12-06 23:42:01 -0800
commit949aeee3f19f893a1581627efbd79ce24141ea6c (patch)
tree64aeea6319439196c9a195b92634ce966795d073 /upb/bindings
parent31225357260d26e203a5f61d910cd405ab819e3b (diff)
Changes for PR comments.
Diffstat (limited to 'upb/bindings')
-rw-r--r--upb/bindings/lua/msg.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/upb/bindings/lua/msg.c b/upb/bindings/lua/msg.c
index 6783b23..e7c3f2e 100644
--- a/upb/bindings/lua/msg.c
+++ b/upb/bindings/lua/msg.c
@@ -256,10 +256,19 @@ static int lupb_msgfactory_new(lua_State *L) {
* lupb_msgfactory_getmsgclass()
*
* Handles:
- * MessageClass = factory.get_message_class(msgdef)
+ * MessageClass = factory.get_message_class(message_name)
*/
static int lupb_msgfactory_getmsgclass(lua_State *L) {
- lupb_msgfactory_pushmsgclass(L, 1, lupb_msgdef_check(L, 2));
+ lupb_msgfactory *lfactory = lupb_msgfactory_check(L, 1);
+ const upb_symtab *symtab = upb_msgfactory_symtab(lfactory->factory);
+ const upb_msgdef *m = upb_symtab_lookupmsg(symtab, luaL_checkstring(L, 2));
+
+ if (!m) {
+ luaL_error(L, "No such message type: %s\n", lua_tostring(L, 2));
+ }
+
+ lupb_msgfactory_pushmsgclass(L, 1, m);
+
return 1;
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback