diff options
author | Joshua Haberman <joshua@reverberate.org> | 2011-02-22 11:31:32 -0800 |
---|---|---|
committer | Joshua Haberman <joshua@reverberate.org> | 2011-02-22 11:31:32 -0800 |
commit | 6b574175dd43735a26f171de6b34c3f15bb50f12 (patch) | |
tree | 65c221be25cefb9d54c78e12e0ff641346bd272b /lang_ext/lua | |
parent | fd184f0df2e5e428873eadfaf1ae829d2e4d8e51 (diff) |
Prevent the default message from getting mutated.
If a Lua program references the default message, it will
be copied into a mutable object.
Diffstat (limited to 'lang_ext/lua')
-rw-r--r-- | lang_ext/lua/test.lua | 12 | ||||
-rw-r--r-- | lang_ext/lua/upb.c | 2 |
2 files changed, 8 insertions, 6 deletions
diff --git a/lang_ext/lua/test.lua b/lang_ext/lua/test.lua index 978fb11..67c955e 100644 --- a/lang_ext/lua/test.lua +++ b/lang_ext/lua/test.lua @@ -23,15 +23,17 @@ SpeedMessage1 = symtab:lookup("benchmarks.SpeedMessage1") print(SpeedMessage1:name()) msg = SpeedMessage1() --- print(msg.field1) +--print(msg.field1) -- print(msg.field129) -- print(msg.field271) --- print(msg.field15.field15) +print(msg.field15.field15) +msg.field15.field15 = "my override" +print(msg.field15.field15) -- print(msg.field1) -- print(msg.field1) -- msg.field1 = "YEAH BABY!" -- print(msg.field1) -print(msg.field129) -msg.field129 = 5 -print(msg.field129) +-- print(msg.field129) +-- msg.field129 = 5 +-- print(msg.field129) diff --git a/lang_ext/lua/upb.c b/lang_ext/lua/upb.c index 460ac86..2e0102e 100644 --- a/lang_ext/lua/upb.c +++ b/lang_ext/lua/upb.c @@ -170,7 +170,7 @@ static void lupb_pushvalue(lua_State *L, upb_value val, upb_fielddef *f) { static upb_value lupb_getvalue(lua_State *L, int narg, upb_fielddef *f) { upb_value val; - lua_Number num; + lua_Number num = 0; if (!upb_issubmsg(f) && !upb_isstring(f) && f->type != UPB_TYPE(BOOL)) { num = luaL_checknumber(L, narg); if (f->type != UPB_TYPE(DOUBLE) && f->type != UPB_TYPE(FLOAT) && |