diff options
author | Joshua Haberman <jhaberman@gmail.com> | 2014-12-09 14:05:41 -0800 |
---|---|---|
committer | Joshua Haberman <jhaberman@gmail.com> | 2014-12-09 14:05:41 -0800 |
commit | bf51ef86b448138a281e796df5bdfa8fa118524d (patch) | |
tree | ce16586d7f0a8e5c87252727b4b3745d1a48a4eb /upb/def.c | |
parent | e257bd978d5e6278e7b188d543858852c0c4d856 (diff) | |
parent | 8f8113b4fff748b57b0ff2f1a301e86b4703be84 (diff) |
Merge pull request #7 from cfallin/master
JSON test, symbolic enum names in JSON, and a few improvements.
Diffstat (limited to 'upb/def.c')
-rw-r--r-- | upb/def.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -457,7 +457,7 @@ bool upb_enumdef_addval(upb_enumdef *e, const char *name, int32_t num, if (!upb_isident(name, strlen(name), false, status)) { return false; } - if (upb_enumdef_ntoi(e, name, NULL)) { + if (upb_enumdef_ntoiz(e, name, NULL)) { upb_status_seterrf(status, "name '%s' is already defined", name); return false; } @@ -505,9 +505,10 @@ void upb_enum_begin(upb_enum_iter *i, const upb_enumdef *e) { void upb_enum_next(upb_enum_iter *iter) { upb_strtable_next(iter); } bool upb_enum_done(upb_enum_iter *iter) { return upb_strtable_done(iter); } -bool upb_enumdef_ntoi(const upb_enumdef *def, const char *name, int32_t *num) { +bool upb_enumdef_ntoi(const upb_enumdef *def, const char *name, + size_t len, int32_t *num) { upb_value v; - if (!upb_strtable_lookup(&def->ntoi, name, &v)) { + if (!upb_strtable_lookup2(&def->ntoi, name, len, &v)) { return false; } if (num) *num = upb_value_getint32(v); @@ -595,7 +596,7 @@ static bool enumdefaultint32(const upb_fielddef *f, int32_t *val) { if (f->defaultval.bytes) { // Default was explicitly set as a str; try to lookup corresponding int. str_t *s = f->defaultval.bytes; - if (upb_enumdef_ntoi(e, s->str, val)) { + if (upb_enumdef_ntoiz(e, s->str, val)) { return true; } } else { |