Updated upb to allow nonzero offset minutes in JSON timestamps. (#8258)
* Updated upb to allow nonzero offset minutes in JSON timestamps. This is to pick up https://github.com/protocolbuffers/upb/pull/367 * Reverted error message change. * Fixed quote chars.
This commit is contained in:
parent
aa13fde017
commit
cf28f28347
@ -6711,6 +6711,10 @@ size_t _upb_symtab_bytesloaded(const upb_symtab *s) {
|
||||
return s->bytes_loaded;
|
||||
}
|
||||
|
||||
upb_arena *_upb_symtab_arena(const upb_symtab *s) {
|
||||
return s->arena;
|
||||
}
|
||||
|
||||
#undef CHK_OOM
|
||||
|
||||
|
||||
@ -8020,7 +8024,7 @@ static void jsondec_field(jsondec *d, upb_msg *msg, const upb_msgdef *m) {
|
||||
|
||||
if (!f) {
|
||||
if ((d->options & UPB_JSONDEC_IGNOREUNKNOWN) == 0) {
|
||||
jsondec_errf(d, "Unknown field: '" UPB_STRVIEW_FORMAT "'",
|
||||
jsondec_errf(d, "No such field: " UPB_STRVIEW_FORMAT,
|
||||
UPB_STRVIEW_ARGS(name));
|
||||
}
|
||||
jsondec_skipval(d);
|
||||
@ -8173,7 +8177,8 @@ static void jsondec_timestamp(jsondec *d, upb_msg *msg, const upb_msgdef *m) {
|
||||
|
||||
{
|
||||
/* [+-]08:00 or Z */
|
||||
int ofs = 0;
|
||||
int ofs_hour = 0;
|
||||
int ofs_min = 0;
|
||||
bool neg = false;
|
||||
|
||||
if (ptr == end) goto malformed;
|
||||
@ -8184,9 +8189,10 @@ static void jsondec_timestamp(jsondec *d, upb_msg *msg, const upb_msgdef *m) {
|
||||
/* fallthrough */
|
||||
case '+':
|
||||
if ((end - ptr) != 5) goto malformed;
|
||||
ofs = jsondec_tsdigits(d, &ptr, 2, ":00");
|
||||
ofs *= 60 * 60;
|
||||
seconds.int64_val += (neg ? ofs : -ofs);
|
||||
ofs_hour = jsondec_tsdigits(d, &ptr, 2, ":");
|
||||
ofs_min = jsondec_tsdigits(d, &ptr, 2, NULL);
|
||||
ofs_min = ((ofs_hour * 60) + ofs_min) * 60;
|
||||
seconds.int64_val += (neg ? ofs_min : -ofs_min);
|
||||
break;
|
||||
case 'Z':
|
||||
if (ptr != end) goto malformed;
|
||||
|
@ -4178,6 +4178,7 @@ const upb_filedef *upb_symtab_addfile(
|
||||
upb_symtab *s, const google_protobuf_FileDescriptorProto *file,
|
||||
upb_status *status);
|
||||
size_t _upb_symtab_bytesloaded(const upb_symtab *s);
|
||||
upb_arena *_upb_symtab_arena(const upb_symtab *s);
|
||||
|
||||
/* For generated code only: loads a generated descriptor. */
|
||||
typedef struct upb_def_init {
|
||||
|
@ -7793,7 +7793,8 @@ static void jsondec_timestamp(jsondec *d, upb_msg *msg, const upb_msgdef *m) {
|
||||
|
||||
{
|
||||
/* [+-]08:00 or Z */
|
||||
int ofs = 0;
|
||||
int ofs_hour = 0;
|
||||
int ofs_min = 0;
|
||||
bool neg = false;
|
||||
|
||||
if (ptr == end) goto malformed;
|
||||
@ -7804,9 +7805,10 @@ static void jsondec_timestamp(jsondec *d, upb_msg *msg, const upb_msgdef *m) {
|
||||
/* fallthrough */
|
||||
case '+':
|
||||
if ((end - ptr) != 5) goto malformed;
|
||||
ofs = jsondec_tsdigits(d, &ptr, 2, ":00");
|
||||
ofs *= 60 * 60;
|
||||
seconds.int64_val += (neg ? ofs : -ofs);
|
||||
ofs_hour = jsondec_tsdigits(d, &ptr, 2, ":");
|
||||
ofs_min = jsondec_tsdigits(d, &ptr, 2, NULL);
|
||||
ofs_min = ((ofs_hour * 60) + ofs_min) * 60;
|
||||
seconds.int64_val += (neg ? ofs_min : -ofs_min);
|
||||
break;
|
||||
case 'Z':
|
||||
if (ptr != end) goto malformed;
|
||||
|
@ -4161,7 +4161,6 @@ const upb_filedef *upb_filedef_dep(const upb_filedef *f, int i);
|
||||
const upb_msgdef *upb_filedef_msg(const upb_filedef *f, int i);
|
||||
const upb_enumdef *upb_filedef_enum(const upb_filedef *f, int i);
|
||||
const upb_symtab *upb_filedef_symtab(const upb_filedef *f);
|
||||
upb_arena *_upb_symtab_arena(const upb_symtab *s);
|
||||
|
||||
/* upb_symtab *****************************************************************/
|
||||
|
||||
@ -4179,6 +4178,7 @@ const upb_filedef *upb_symtab_addfile(
|
||||
upb_symtab *s, const google_protobuf_FileDescriptorProto *file,
|
||||
upb_status *status);
|
||||
size_t _upb_symtab_bytesloaded(const upb_symtab *s);
|
||||
upb_arena *_upb_symtab_arena(const upb_symtab *s);
|
||||
|
||||
/* For generated code only: loads a generated descriptor. */
|
||||
typedef struct upb_def_init {
|
||||
|
Loading…
Reference in New Issue
Block a user