{
PHP_JSON_DEPTH_INC;
- if (parser->methods->object_start && FAILURE == parser->methods->object_start(parser)) {
+ if (parser->methods.object_start && FAILURE == parser->methods.object_start(parser)) {
YYERROR;
}
}
{
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-1].value));
PHP_JSON_DEPTH_DEC;
- if (parser->methods->object_end && FAILURE == parser->methods->object_end(parser, &(yyval.value))) {
+ if (parser->methods.object_end && FAILURE == parser->methods.object_end(parser, &(yyval.value))) {
YYERROR;
}
}
case 8:
{
- parser->methods->object_create(parser, &(yyval.value));
+ parser->methods.object_create(parser, &(yyval.value));
}
break;
case 10:
{
- parser->methods->object_create(parser, &(yyval.value));
- if (parser->methods->object_update(parser, &(yyval.value), (yyvsp[0].pair).key, &(yyvsp[0].pair).val) == FAILURE) {
+ parser->methods.object_create(parser, &(yyval.value));
+ if (parser->methods.object_update(parser, &(yyval.value), (yyvsp[0].pair).key, &(yyvsp[0].pair).val) == FAILURE) {
YYERROR;
}
}
case 11:
{
- if (parser->methods->object_update(parser, &(yyvsp[-2].value), (yyvsp[0].pair).key, &(yyvsp[0].pair).val) == FAILURE) {
+ if (parser->methods.object_update(parser, &(yyvsp[-2].value), (yyvsp[0].pair).key, &(yyvsp[0].pair).val) == FAILURE) {
YYERROR;
}
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-2].value));
{
PHP_JSON_DEPTH_INC;
- if (parser->methods->array_start && FAILURE == parser->methods->array_start(parser)) {
+ if (parser->methods.array_start && FAILURE == parser->methods.array_start(parser)) {
YYERROR;
}
}
{
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-1].value));
PHP_JSON_DEPTH_DEC;
- if (parser->methods->array_end && FAILURE == parser->methods->array_end(parser, &(yyval.value))) {
+ if (parser->methods.array_end && FAILURE == parser->methods.array_end(parser, &(yyval.value))) {
YYERROR;
}
}
case 19:
{
- parser->methods->array_create(parser, &(yyval.value));
+ parser->methods.array_create(parser, &(yyval.value));
}
break;
case 21:
{
- parser->methods->array_create(parser, &(yyval.value));
- parser->methods->array_append(parser, &(yyval.value), &(yyvsp[0].value));
+ parser->methods.array_create(parser, &(yyval.value));
+ parser->methods.array_append(parser, &(yyval.value), &(yyvsp[0].value));
}
break;
case 22:
{
- parser->methods->array_append(parser, &(yyvsp[-2].value), &(yyvsp[0].value));
+ parser->methods.array_append(parser, &(yyvsp[-2].value), &(yyvsp[0].value));
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-2].value));
}
parser->depth = 1;
parser->max_depth = max_depth;
parser->return_value = return_value;
- parser->methods = parser_methods;
+ memcpy(&parser->methods, parser_methods, sizeof(php_json_parser_methods));
}
void php_json_parser_init(php_json_parser *parser,
'{'
{
PHP_JSON_DEPTH_INC;
- if (parser->methods->object_start && FAILURE == parser->methods->object_start(parser)) {
+ if (parser->methods.object_start && FAILURE == parser->methods.object_start(parser)) {
YYERROR;
}
}
{
ZVAL_COPY_VALUE(&$$, &$3);
PHP_JSON_DEPTH_DEC;
- if (parser->methods->object_end && FAILURE == parser->methods->object_end(parser, &$$)) {
+ if (parser->methods.object_end && FAILURE == parser->methods.object_end(parser, &$$)) {
YYERROR;
}
}
members:
/* empty */
{
- parser->methods->object_create(parser, &$$);
+ parser->methods.object_create(parser, &$$);
}
| member
;
member:
pair
{
- parser->methods->object_create(parser, &$$);
- if (parser->methods->object_update(parser, &$$, $1.key, &$1.val) == FAILURE) {
+ parser->methods.object_create(parser, &$$);
+ if (parser->methods.object_update(parser, &$$, $1.key, &$1.val) == FAILURE) {
YYERROR;
}
}
| member ',' pair
{
- if (parser->methods->object_update(parser, &$1, $3.key, &$3.val) == FAILURE) {
+ if (parser->methods.object_update(parser, &$1, $3.key, &$3.val) == FAILURE) {
YYERROR;
}
ZVAL_COPY_VALUE(&$$, &$1);
'['
{
PHP_JSON_DEPTH_INC;
- if (parser->methods->array_start && FAILURE == parser->methods->array_start(parser)) {
+ if (parser->methods.array_start && FAILURE == parser->methods.array_start(parser)) {
YYERROR;
}
}
{
ZVAL_COPY_VALUE(&$$, &$3);
PHP_JSON_DEPTH_DEC;
- if (parser->methods->array_end && FAILURE == parser->methods->array_end(parser, &$$)) {
+ if (parser->methods.array_end && FAILURE == parser->methods.array_end(parser, &$$)) {
YYERROR;
}
}
elements:
/* empty */
{
- parser->methods->array_create(parser, &$$);
+ parser->methods.array_create(parser, &$$);
}
| element
;
element:
value
{
- parser->methods->array_create(parser, &$$);
- parser->methods->array_append(parser, &$$, &$1);
+ parser->methods.array_create(parser, &$$);
+ parser->methods.array_append(parser, &$$, &$1);
}
| element ',' value
{
- parser->methods->array_append(parser, &$1, &$3);
+ parser->methods.array_append(parser, &$1, &$3);
ZVAL_COPY_VALUE(&$$, &$1);
}
| element errlex
parser->depth = 1;
parser->max_depth = max_depth;
parser->return_value = return_value;
- parser->methods = parser_methods;
+ memcpy(&parser->methods, parser_methods, sizeof(php_json_parser_methods));
}
void php_json_parser_init(php_json_parser *parser,