diff --git a/php/ext/google/protobuf/message.c b/php/ext/google/protobuf/message.c index d60124ef08bf..303f5d4741f2 100644 --- a/php/ext/google/protobuf/message.c +++ b/php/ext/google/protobuf/message.c @@ -1770,19 +1770,19 @@ zend_class_entry* api_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\Api", Api, api) - zend_declare_property_null(api_type, "name", strlen("name"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(api_type, "name", strlen("name"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(api_type, "methods", strlen("methods"), ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(api_type, "options", strlen("options"), ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(api_type, "version", strlen("version"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(api_type, "version", strlen("version"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(api_type, "source_context", strlen("source_context"), ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(api_type, "mixins", strlen("mixins"), ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(api_type, "syntax", strlen("syntax"), + zend_declare_property_long(api_type, "syntax", strlen("syntax"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END @@ -1816,7 +1816,7 @@ zend_class_entry* bool_value_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\BoolValue", BoolValue, bool_value) - zend_declare_property_null(bool_value_type, "value", strlen("value"), + zend_declare_property_bool(bool_value_type, "value", strlen("value"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END @@ -1844,8 +1844,8 @@ zend_class_entry* bytes_value_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\BytesValue", BytesValue, bytes_value) - zend_declare_property_null(bytes_value_type, "value", strlen("value"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(bytes_value_type, "value", strlen("value"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END PHP_METHOD(BytesValue, __construct) { @@ -1872,8 +1872,8 @@ zend_class_entry* double_value_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\DoubleValue", DoubleValue, double_value) - zend_declare_property_null(double_value_type, "value", strlen("value"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_double(double_value_type, "value", strlen("value"), 0, + ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END PHP_METHOD(DoubleValue, __construct) { @@ -1908,15 +1908,15 @@ zend_class_entry* enum_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\Enum", Enum, enum) - zend_declare_property_null(enum_type, "name", strlen("name"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(enum_type, "name", strlen("name"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(enum_type, "enumvalue", strlen("enumvalue"), ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(enum_type, "options", strlen("options"), ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(enum_type, "source_context", strlen("source_context"), ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(enum_type, "syntax", strlen("syntax"), + zend_declare_property_long(enum_type, "syntax", strlen("syntax"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END @@ -1952,9 +1952,9 @@ zend_class_entry* enum_value_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\EnumValue", EnumValue, enum_value) - zend_declare_property_null(enum_value_type, "name", strlen("name"), - ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(enum_value_type, "number", strlen("number"), + zend_declare_property_string(enum_value_type, "name", strlen("name"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_long(enum_value_type, "number", strlen("number"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(enum_value_type, "options", strlen("options"), ZEND_ACC_PRIVATE TSRMLS_CC); @@ -2032,26 +2032,27 @@ zend_class_entry* field_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\Field", Field, field) - zend_declare_property_null(field_type, "kind", strlen("kind"), + zend_declare_property_long(field_type, "kind", strlen("kind"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(field_type, "cardinality", strlen("cardinality"), + zend_declare_property_long(field_type, "cardinality", strlen("cardinality"), + 0, ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_long(field_type, "number", strlen("number"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(field_type, "number", strlen("number"), - ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(field_type, "name", strlen("name"), - ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(field_type, "type_url", strlen("type_url"), - ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(field_type, "oneof_index", strlen("oneof_index"), - ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(field_type, "packed", strlen("packed"), + zend_declare_property_string(field_type, "name", strlen("name"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(field_type, "type_url", strlen("type_url"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_long(field_type, "oneof_index", strlen("oneof_index"), + 0, ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_bool(field_type, "packed", strlen("packed"), false, ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(field_type, "options", strlen("options"), ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(field_type, "json_name", strlen("json_name"), - ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(field_type, "default_value", strlen("default_value"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(field_type, "json_name", strlen("json_name"), + "", ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(field_type, "default_value", + strlen("default_value"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END PHP_METHOD(Field, __construct) { @@ -2087,8 +2088,8 @@ zend_class_entry* float_value_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\FloatValue", FloatValue, float_value) - zend_declare_property_null(float_value_type, "value", strlen("value"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_double(float_value_type, "value", strlen("value"), 0, + ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END PHP_METHOD(FloatValue, __construct) { @@ -2138,7 +2139,7 @@ zend_class_entry* int32_value_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\Int32Value", Int32Value, int32_value) - zend_declare_property_null(int32_value_type, "value", strlen("value"), + zend_declare_property_long(int32_value_type, "value", strlen("value"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END @@ -2166,7 +2167,7 @@ zend_class_entry* int64_value_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\Int64Value", Int64Value, int64_value) - zend_declare_property_null(int64_value_type, "value", strlen("value"), + zend_declare_property_long(int64_value_type, "value", strlen("value"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END @@ -2234,19 +2235,23 @@ zend_class_entry* method_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\Method", Method, method) - zend_declare_property_null(method_type, "name", strlen("name"), - ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(method_type, "request_type_url", strlen("request_type_url"), - ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(method_type, "request_streaming", strlen("request_streaming"), + zend_declare_property_string(method_type, "name", strlen("name"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(method_type, "request_type_url", + strlen("request_type_url"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_bool(method_type, "request_streaming", + strlen("request_streaming"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(method_type, "response_type_url", strlen("response_type_url"), - ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(method_type, "response_streaming", strlen("response_streaming"), + zend_declare_property_string(method_type, "response_type_url", + strlen("response_type_url"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_bool(method_type, "response_streaming", + strlen("response_streaming"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(method_type, "options", strlen("options"), ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(method_type, "syntax", strlen("syntax"), + zend_declare_property_long(method_type, "syntax", strlen("syntax"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END @@ -2282,10 +2287,10 @@ zend_class_entry* mixin_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\Mixin", Mixin, mixin) - zend_declare_property_null(mixin_type, "name", strlen("name"), - ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(mixin_type, "root", strlen("root"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(mixin_type, "name", strlen("name"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(mixin_type, "root", strlen("root"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END PHP_METHOD(Mixin, __construct) { @@ -2315,8 +2320,8 @@ zend_class_entry* option_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\Option", Option, option) - zend_declare_property_null(option_type, "name", strlen("name"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(option_type, "name", strlen("name"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(option_type, "value", strlen("value"), ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END @@ -2346,8 +2351,9 @@ zend_class_entry* source_context_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\SourceContext", SourceContext, source_context) - zend_declare_property_null(source_context_type, "file_name", strlen("file_name"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(source_context_type, "file_name", + strlen("file_name"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END PHP_METHOD(SourceContext, __construct) { @@ -2374,8 +2380,8 @@ zend_class_entry* string_value_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\StringValue", StringValue, string_value) - zend_declare_property_null(string_value_type, "value", strlen("value"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(string_value_type, "value", strlen("value"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END PHP_METHOD(StringValue, __construct) { @@ -2440,17 +2446,17 @@ zend_class_entry* type_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\Type", Type, type) - zend_declare_property_null(type_type, "name", strlen("name"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(type_type, "name", strlen("name"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(type_type, "fields", strlen("fields"), ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(type_type, "oneofs", strlen("oneofs"), - ZEND_ACC_PRIVATE TSRMLS_CC); + zend_declare_property_string(type_type, "oneofs", strlen("oneofs"), "", + ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(type_type, "options", strlen("options"), ZEND_ACC_PRIVATE TSRMLS_CC); zend_declare_property_null(type_type, "source_context", strlen("source_context"), ZEND_ACC_PRIVATE TSRMLS_CC); - zend_declare_property_null(type_type, "syntax", strlen("syntax"), + zend_declare_property_long(type_type, "syntax", strlen("syntax"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END @@ -2483,7 +2489,7 @@ zend_class_entry* u_int32_value_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\UInt32Value", UInt32Value, u_int32_value) - zend_declare_property_null(u_int32_value_type, "value", strlen("value"), + zend_declare_property_long(u_int32_value_type, "value", strlen("value"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END @@ -2511,7 +2517,7 @@ zend_class_entry* u_int64_value_type; // Init class entry. PHP_PROTO_INIT_SUBMSGCLASS_START("Google\\Protobuf\\UInt64Value", UInt64Value, u_int64_value) - zend_declare_property_null(u_int64_value_type, "value", strlen("value"), + zend_declare_property_long(u_int64_value_type, "value", strlen("value"), 0, ZEND_ACC_PRIVATE TSRMLS_CC); PHP_PROTO_INIT_SUBMSGCLASS_END diff --git a/php/ext/google/protobuf/upb.c b/php/ext/google/protobuf/upb.c index a65264afbb6c..822b25ce90c6 100644 --- a/php/ext/google/protobuf/upb.c +++ b/php/ext/google/protobuf/upb.c @@ -8430,7 +8430,7 @@ upb_decoderet upb_vdecode_max8_branch64(upb_decoderet r) { return r; } -#line 1 "upb/json/parser.rl" +//#line 1 "upb/json/parser.rl" /* ** upb::json::Parser (upb_json_parser) ** @@ -11017,11 +11017,11 @@ static bool does_fieldmask_end(upb_json_parser *p) { * final state once, when the closing '"' is seen. */ -#line 2794 "upb/json/parser.rl" +//#line 2794 "upb/json/parser.rl" -#line 2597 "upb/json/parser.c" +//#line 2597 "upb/json/parser.c" static const char _json_actions[] = { 0, 1, 0, 1, 1, 1, 3, 1, 4, 1, 6, 1, 7, 1, 8, 1, @@ -11276,7 +11276,7 @@ static const int json_en_value_machine = 78; static const int json_en_main = 1; -#line 2797 "upb/json/parser.rl" +//#line 2797 "upb/json/parser.rl" size_t parse(void *closure, const void *hd, const char *buf, size_t size, const upb_bufhandle *handle) { @@ -11299,7 +11299,7 @@ size_t parse(void *closure, const void *hd, const char *buf, size_t size, capture_resume(parser, buf); -#line 2875 "upb/json/parser.c" +//#line 2875 "upb/json/parser.c" { int _klen; unsigned int _trans; @@ -11374,147 +11374,147 @@ size_t parse(void *closure, const void *hd, const char *buf, size_t size, switch ( *_acts++ ) { case 1: -#line 2602 "upb/json/parser.rl" +//#line 2602 "upb/json/parser.rl" { p--; {cs = stack[--top]; goto _again;} } break; case 2: -#line 2604 "upb/json/parser.rl" +//#line 2604 "upb/json/parser.rl" { p--; {stack[top++] = cs; cs = 23;goto _again;} } break; case 3: -#line 2608 "upb/json/parser.rl" +//#line 2608 "upb/json/parser.rl" { start_text(parser, p); } break; case 4: -#line 2609 "upb/json/parser.rl" +//#line 2609 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_text(parser, p)); } break; case 5: -#line 2615 "upb/json/parser.rl" +//#line 2615 "upb/json/parser.rl" { start_hex(parser); } break; case 6: -#line 2616 "upb/json/parser.rl" +//#line 2616 "upb/json/parser.rl" { hexdigit(parser, p); } break; case 7: -#line 2617 "upb/json/parser.rl" +//#line 2617 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_hex(parser)); } break; case 8: -#line 2623 "upb/json/parser.rl" +//#line 2623 "upb/json/parser.rl" { CHECK_RETURN_TOP(escape(parser, p)); } break; case 9: -#line 2629 "upb/json/parser.rl" +//#line 2629 "upb/json/parser.rl" { p--; {cs = stack[--top]; goto _again;} } break; case 10: -#line 2634 "upb/json/parser.rl" +//#line 2634 "upb/json/parser.rl" { start_year(parser, p); } break; case 11: -#line 2635 "upb/json/parser.rl" +//#line 2635 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_year(parser, p)); } break; case 12: -#line 2639 "upb/json/parser.rl" +//#line 2639 "upb/json/parser.rl" { start_month(parser, p); } break; case 13: -#line 2640 "upb/json/parser.rl" +//#line 2640 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_month(parser, p)); } break; case 14: -#line 2644 "upb/json/parser.rl" +//#line 2644 "upb/json/parser.rl" { start_day(parser, p); } break; case 15: -#line 2645 "upb/json/parser.rl" +//#line 2645 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_day(parser, p)); } break; case 16: -#line 2649 "upb/json/parser.rl" +//#line 2649 "upb/json/parser.rl" { start_hour(parser, p); } break; case 17: -#line 2650 "upb/json/parser.rl" +//#line 2650 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_hour(parser, p)); } break; case 18: -#line 2654 "upb/json/parser.rl" +//#line 2654 "upb/json/parser.rl" { start_minute(parser, p); } break; case 19: -#line 2655 "upb/json/parser.rl" +//#line 2655 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_minute(parser, p)); } break; case 20: -#line 2659 "upb/json/parser.rl" +//#line 2659 "upb/json/parser.rl" { start_second(parser, p); } break; case 21: -#line 2660 "upb/json/parser.rl" +//#line 2660 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_second(parser, p)); } break; case 22: -#line 2665 "upb/json/parser.rl" +//#line 2665 "upb/json/parser.rl" { start_duration_base(parser, p); } break; case 23: -#line 2666 "upb/json/parser.rl" +//#line 2666 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_duration_base(parser, p)); } break; case 24: -#line 2668 "upb/json/parser.rl" +//#line 2668 "upb/json/parser.rl" { p--; {cs = stack[--top]; goto _again;} } break; case 25: -#line 2673 "upb/json/parser.rl" +//#line 2673 "upb/json/parser.rl" { start_timestamp_base(parser); } break; case 26: -#line 2675 "upb/json/parser.rl" +//#line 2675 "upb/json/parser.rl" { start_timestamp_fraction(parser, p); } break; case 27: -#line 2676 "upb/json/parser.rl" +//#line 2676 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_timestamp_fraction(parser, p)); } break; case 28: -#line 2678 "upb/json/parser.rl" +//#line 2678 "upb/json/parser.rl" { start_timestamp_zone(parser, p); } break; case 29: -#line 2679 "upb/json/parser.rl" +//#line 2679 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_timestamp_zone(parser, p)); } break; case 30: -#line 2681 "upb/json/parser.rl" +//#line 2681 "upb/json/parser.rl" { p--; {cs = stack[--top]; goto _again;} } break; case 31: -#line 2686 "upb/json/parser.rl" +//#line 2686 "upb/json/parser.rl" { start_fieldmask_path_text(parser, p); } break; case 32: -#line 2687 "upb/json/parser.rl" +//#line 2687 "upb/json/parser.rl" { end_fieldmask_path_text(parser, p); } break; case 33: -#line 2692 "upb/json/parser.rl" +//#line 2692 "upb/json/parser.rl" { start_fieldmask_path(parser); } break; case 34: -#line 2693 "upb/json/parser.rl" +//#line 2693 "upb/json/parser.rl" { end_fieldmask_path(parser); } break; case 35: -#line 2699 "upb/json/parser.rl" +//#line 2699 "upb/json/parser.rl" { p--; {cs = stack[--top]; goto _again;} } break; case 36: -#line 2704 "upb/json/parser.rl" +//#line 2704 "upb/json/parser.rl" { if (is_wellknown_msg(parser, UPB_WELLKNOWN_TIMESTAMP)) { {stack[top++] = cs; cs = 47;goto _again;} @@ -11528,11 +11528,11 @@ size_t parse(void *closure, const void *hd, const char *buf, size_t size, } break; case 37: -#line 2717 "upb/json/parser.rl" +//#line 2717 "upb/json/parser.rl" { p--; {stack[top++] = cs; cs = 78;goto _again;} } break; case 38: -#line 2722 "upb/json/parser.rl" +//#line 2722 "upb/json/parser.rl" { if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { start_any_member(parser, p); @@ -11542,11 +11542,11 @@ size_t parse(void *closure, const void *hd, const char *buf, size_t size, } break; case 39: -#line 2729 "upb/json/parser.rl" +//#line 2729 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_membername(parser)); } break; case 40: -#line 2732 "upb/json/parser.rl" +//#line 2732 "upb/json/parser.rl" { if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { end_any_member(parser, p); @@ -11556,7 +11556,7 @@ size_t parse(void *closure, const void *hd, const char *buf, size_t size, } break; case 41: -#line 2743 "upb/json/parser.rl" +//#line 2743 "upb/json/parser.rl" { if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { start_any_object(parser, p); @@ -11566,7 +11566,7 @@ size_t parse(void *closure, const void *hd, const char *buf, size_t size, } break; case 42: -#line 2752 "upb/json/parser.rl" +//#line 2752 "upb/json/parser.rl" { if (is_wellknown_msg(parser, UPB_WELLKNOWN_ANY)) { CHECK_RETURN_TOP(end_any_object(parser, p)); @@ -11576,54 +11576,54 @@ size_t parse(void *closure, const void *hd, const char *buf, size_t size, } break; case 43: -#line 2764 "upb/json/parser.rl" +//#line 2764 "upb/json/parser.rl" { CHECK_RETURN_TOP(start_array(parser)); } break; case 44: -#line 2768 "upb/json/parser.rl" +//#line 2768 "upb/json/parser.rl" { end_array(parser); } break; case 45: -#line 2773 "upb/json/parser.rl" +//#line 2773 "upb/json/parser.rl" { CHECK_RETURN_TOP(start_number(parser, p)); } break; case 46: -#line 2774 "upb/json/parser.rl" +//#line 2774 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_number(parser, p)); } break; case 47: -#line 2776 "upb/json/parser.rl" +//#line 2776 "upb/json/parser.rl" { CHECK_RETURN_TOP(start_stringval(parser)); } break; case 48: -#line 2777 "upb/json/parser.rl" +//#line 2777 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_stringval(parser)); } break; case 49: -#line 2779 "upb/json/parser.rl" +//#line 2779 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_bool(parser, true)); } break; case 50: -#line 2781 "upb/json/parser.rl" +//#line 2781 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_bool(parser, false)); } break; case 51: -#line 2783 "upb/json/parser.rl" +//#line 2783 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_null(parser)); } break; case 52: -#line 2785 "upb/json/parser.rl" +//#line 2785 "upb/json/parser.rl" { CHECK_RETURN_TOP(start_subobject_full(parser)); } break; case 53: -#line 2786 "upb/json/parser.rl" +//#line 2786 "upb/json/parser.rl" { end_subobject_full(parser); } break; case 54: -#line 2791 "upb/json/parser.rl" +//#line 2791 "upb/json/parser.rl" { p--; {cs = stack[--top]; goto _again;} } break; -#line 3199 "upb/json/parser.c" +//#line 3199 "upb/json/parser.c" } } @@ -11640,32 +11640,32 @@ size_t parse(void *closure, const void *hd, const char *buf, size_t size, while ( __nacts-- > 0 ) { switch ( *__acts++ ) { case 0: -#line 2600 "upb/json/parser.rl" +//#line 2600 "upb/json/parser.rl" { p--; {cs = stack[--top]; if ( p == pe ) goto _test_eof; goto _again;} } break; case 46: -#line 2774 "upb/json/parser.rl" +//#line 2774 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_number(parser, p)); } break; case 49: -#line 2779 "upb/json/parser.rl" +//#line 2779 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_bool(parser, true)); } break; case 50: -#line 2781 "upb/json/parser.rl" +//#line 2781 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_bool(parser, false)); } break; case 51: -#line 2783 "upb/json/parser.rl" +//#line 2783 "upb/json/parser.rl" { CHECK_RETURN_TOP(end_null(parser)); } break; case 53: -#line 2786 "upb/json/parser.rl" +//#line 2786 "upb/json/parser.rl" { end_subobject_full(parser); } break; -#line 3241 "upb/json/parser.c" +//#line 3241 "upb/json/parser.c" } } } @@ -11673,7 +11673,7 @@ goto _again;} } _out: {} } -#line 2819 "upb/json/parser.rl" +//#line 2819 "upb/json/parser.rl" if (p != pe) { upb_status_seterrf(parser->status, "Parse error at '%.*s'\n", pe - p, p); @@ -11716,13 +11716,13 @@ static void json_parser_reset(upb_json_parser *p) { /* Emit Ragel initialization of the parser. */ -#line 3292 "upb/json/parser.c" +//#line 3292 "upb/json/parser.c" { cs = json_start; top = 0; } -#line 2861 "upb/json/parser.rl" +//#line 2861 "upb/json/parser.rl" p->current_state = cs; p->parser_top = top; accumulate_clear(p); diff --git a/php/tests/encode_decode_test.php b/php/tests/encode_decode_test.php index f2a50180c65e..26b765652d44 100644 --- a/php/tests/encode_decode_test.php +++ b/php/tests/encode_decode_test.php @@ -5,6 +5,7 @@ use Google\Protobuf\RepeatedField; use Google\Protobuf\GPBType; +use Foo\TestStringValue; use Foo\TestAny; use Foo\TestEnum; use Foo\TestMessage; @@ -167,6 +168,14 @@ public function testEncodeTopLevelStringValue() $this->assertSame("\"a\"", $m->serializeToJsonString()); } + public function testEncodeStringValue() + { + $m = new TestStringValue(['field' => new StringValue(['value' => ''])]); + var_dump($m->getField()); + var_dump($m->serializeToJsonString()); + $this->assertSame("{\"field\":\"\"}", $m->serializeToJsonString()); + } + public function testDecodeTopLevelBytesValue() { $m = new BytesValue(); diff --git a/php/tests/memory_leak_test.php b/php/tests/memory_leak_test.php index 142f46766926..2873f34432cf 100644 --- a/php/tests/memory_leak_test.php +++ b/php/tests/memory_leak_test.php @@ -31,6 +31,7 @@ require_once('generated/Foo/TestPhpDoc.php'); require_once('generated/Foo/TestRandomFieldOrder.php'); require_once('generated/Foo/TestReverseFieldOrder.php'); +require_once('generated/Foo/TestStringValue.php'); require_once('generated/Foo/TestUnpackedMessage.php'); require_once('generated/Foo/testLowerCaseMessage.php'); require_once('generated/Foo/testLowerCaseEnum.php'); diff --git a/php/tests/proto/test.proto b/php/tests/proto/test.proto index 715f08b83230..ea00fec88d28 100644 --- a/php/tests/proto/test.proto +++ b/php/tests/proto/test.proto @@ -1,6 +1,7 @@ syntax = "proto3"; import 'google/protobuf/any.proto'; +import 'google/protobuf/wrappers.proto'; import 'google/protobuf/struct.proto'; import 'proto/test_include.proto'; import 'proto/test_no_namespace.proto'; @@ -207,3 +208,7 @@ enum testLowerCaseEnum { message TestAny { google.protobuf.Any any = 1; } + +message TestStringValue { + google.protobuf.StringValue field = 1; +}