Skip to content

Commit 4e525dd

Browse files
author
Phalcon
committed
Merge pull request #1787 from sjinks/issue-1786
Fix #1786
2 parents 4b94ad5 + fbf68de commit 4e525dd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+1147
-1301
lines changed

CHANGELOG

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
1.3.0
22
- Make the source code compatible with PHP 5.6-dev and PHP 5.7-dev (#1762)
33
- Code cleanup: get rid of compiler warnings, dead code elimination, code deduplication, use static code analysers to eliminate possible bugs
4-
(#801, #802, #810, #825, #827, #838, #849, #942, #968, #1001, #1093, #1169, #1214, #1223, #1224, #1375, #1430)
4+
(#801, #802, #810, #825, #827, #838, #849, #942, #968, #1001, #1093, #1169, #1214, #1223, #1224, #1375, #1430, #1787)
55
- Fixed various memory leaks (#469, #860, #910, #914, #916, #1031, #1067, #1249, #1273, #1291, #1309, #1345, #1455, #1470, #1700)
66
- Fixed memory access violations / segmentation faults / etc (#469, #849, #851, #852, #858, #860, #861, #895, #911, #918, #927, #928, #1000, #1077, #1112, #1113, #1131, #1149, #1173,
77
#1272, #1284, #1302, #1340, #1343, #1368, #1369, #1371, #1376, #1379, #1392, #1451, #1466, #1485, #1494, #1501, #1504, #1509, #1567, #1607)

ext/annotations/parser.c

+54-53
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include <stdio.h>
77
/* #line 28 "parser.y" */
88

9+
910
#include "php_phalcon.h"
1011

1112
#include <ext/standard/php_smart_str.h>
@@ -128,7 +129,7 @@ static zval *phannot_ret_annotation(phannot_parser_token *name, zval *arguments,
128129
}
129130

130131

131-
/* #line 139 "parser.c" */
132+
/* #line 133 "parser.c" */
132133
/* Next is all token values, in a form suitable for use by makeheaders.
133134
** This section will be null unless lemon is run with the -m switch.
134135
*/
@@ -422,7 +423,7 @@ static const char *jjRuleName[] = {
422423
*/
423424
const char *phannot_TokenName(int tokenType){
424425
#ifndef NDEBUG
425-
if( tokenType>0 && tokenType<(sizeof(jjTokenName)/sizeof(jjTokenName[0])) ){
426+
if( tokenType>0 && (size_t)tokenType<(sizeof(jjTokenName)/sizeof(jjTokenName[0])) ){
426427
return jjTokenName[tokenType];
427428
}else{
428429
return "Unknown";
@@ -487,7 +488,7 @@ static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){
487488
case 15:
488489
case 16:
489490
case 17:
490-
/* #line 222 "parser.y" */
491+
/* #line 216 "parser.y" */
491492
{
492493
if ((jjpminor->jj0)) {
493494
if ((jjpminor->jj0)->free_flag) {
@@ -496,17 +497,17 @@ static void jj_destructor(JJCODETYPE jjmajor, JJMINORTYPE *jjpminor){
496497
efree((jjpminor->jj0));
497498
}
498499
}
499-
/* #line 507 "parser.c" */
500+
/* #line 501 "parser.c" */
500501
break;
501502
case 20:
502503
case 21:
503504
case 22:
504505
case 23:
505506
case 24:
506507
case 25:
507-
/* #line 235 "parser.y" */
508+
/* #line 229 "parser.y" */
508509
{ zval_ptr_dtor(&(jjpminor->jj36)); }
509-
/* #line 517 "parser.c" */
510+
/* #line 511 "parser.c" */
510511
break;
511512
default: break; /* If no destructor action specified: do nothing */
512513
}
@@ -584,7 +585,7 @@ static int jj_find_shift_action(
584585
return JJ_NO_ACTION;
585586
}
586587
i += iLookAhead;
587-
if( i<0 || i>=JJ_SZ_ACTTAB || jj_lookahead[i]!=iLookAhead ){
588+
if( i<0 || i>=(int)JJ_SZ_ACTTAB || jj_lookahead[i]!=iLookAhead ){
588589
#ifdef JJFALLBACK
589590
int iFallback; /* Fallback token */
590591
if( iLookAhead<sizeof(jjFallback)/sizeof(jjFallback[0])
@@ -627,7 +628,7 @@ static int jj_find_reduce_action(
627628
return JJ_NO_ACTION;
628629
}
629630
i += iLookAhead;
630-
if( i<0 || i>=JJ_SZ_ACTTAB || jj_lookahead[i]!=iLookAhead ){
631+
if( i<0 || i>=(int)JJ_SZ_ACTTAB || jj_lookahead[i]!=iLookAhead ){
631632
return jj_default[stateno];
632633
}else{
633634
return jj_action[i];
@@ -728,7 +729,7 @@ static void jj_reduce(
728729
jjmsp = &jjpParser->jjstack[jjpParser->jjidx];
729730
#ifndef NDEBUG
730731
if( jjTraceFILE && jjruleno>=0
731-
&& jjruleno<sizeof(jjRuleName)/sizeof(jjRuleName[0]) ){
732+
&& jjruleno<(int)(sizeof(jjRuleName)/sizeof(jjRuleName[0])) ){
732733
fprintf(jjTraceFILE, "%sReduce [%s].\n", jjTracePrompt,
733734
jjRuleName[jjruleno]);
734735
}
@@ -744,166 +745,166 @@ static void jj_reduce(
744745
** break;
745746
*/
746747
case 0:
747-
/* #line 231 "parser.y" */
748+
/* #line 225 "parser.y" */
748749
{
749750
status->ret = jjmsp[0].minor.jj36;
750751
}
751-
/* #line 759 "parser.c" */
752+
/* #line 753 "parser.c" */
752753
break;
753754
case 1:
754755
case 14:
755756
case 15:
756-
/* #line 237 "parser.y" */
757+
/* #line 231 "parser.y" */
757758
{
758759
jjgotominor.jj36 = jjmsp[0].minor.jj36;
759760
}
760-
/* #line 768 "parser.c" */
761+
/* #line 762 "parser.c" */
761762
break;
762763
case 2:
763-
/* #line 243 "parser.y" */
764+
/* #line 237 "parser.y" */
764765
{
765766
jjgotominor.jj36 = phannot_ret_zval_list(jjmsp[-1].minor.jj36, jjmsp[0].minor.jj36);
766767
}
767-
/* #line 775 "parser.c" */
768+
/* #line 769 "parser.c" */
768769
break;
769770
case 3:
770771
case 8:
771-
/* #line 247 "parser.y" */
772+
/* #line 241 "parser.y" */
772773
{
773774
jjgotominor.jj36 = phannot_ret_zval_list(NULL, jjmsp[0].minor.jj36);
774775
}
775-
/* #line 783 "parser.c" */
776+
/* #line 777 "parser.c" */
776777
break;
777778
case 4:
778-
/* #line 254 "parser.y" */
779+
/* #line 248 "parser.y" */
779780
{
780781
jjgotominor.jj36 = phannot_ret_annotation(jjmsp[-3].minor.jj0, jjmsp[-1].minor.jj36, status->scanner_state);
781782
jj_destructor(2,&jjmsp[-4].minor);
782783
jj_destructor(4,&jjmsp[-2].minor);
783784
jj_destructor(5,&jjmsp[0].minor);
784785
}
785-
/* #line 793 "parser.c" */
786+
/* #line 787 "parser.c" */
786787
break;
787788
case 5:
788-
/* #line 258 "parser.y" */
789+
/* #line 252 "parser.y" */
789790
{
790791
jjgotominor.jj36 = phannot_ret_annotation(jjmsp[-2].minor.jj0, NULL, status->scanner_state);
791792
jj_destructor(2,&jjmsp[-3].minor);
792793
jj_destructor(4,&jjmsp[-1].minor);
793794
jj_destructor(5,&jjmsp[0].minor);
794795
}
795-
/* #line 803 "parser.c" */
796+
/* #line 797 "parser.c" */
796797
break;
797798
case 6:
798-
/* #line 262 "parser.y" */
799+
/* #line 256 "parser.y" */
799800
{
800801
jjgotominor.jj36 = phannot_ret_annotation(jjmsp[0].minor.jj0, NULL, status->scanner_state);
801802
jj_destructor(2,&jjmsp[-1].minor);
802803
}
803-
/* #line 811 "parser.c" */
804+
/* #line 805 "parser.c" */
804805
break;
805806
case 7:
806-
/* #line 268 "parser.y" */
807+
/* #line 262 "parser.y" */
807808
{
808809
jjgotominor.jj36 = phannot_ret_zval_list(jjmsp[-2].minor.jj36, jjmsp[0].minor.jj36);
809810
jj_destructor(1,&jjmsp[-1].minor);
810811
}
811-
/* #line 819 "parser.c" */
812+
/* #line 813 "parser.c" */
812813
break;
813814
case 9:
814-
/* #line 278 "parser.y" */
815+
/* #line 272 "parser.y" */
815816
{
816817
jjgotominor.jj36 = phannot_ret_named_item(NULL, jjmsp[0].minor.jj36);
817818
}
818-
/* #line 826 "parser.c" */
819+
/* #line 820 "parser.c" */
819820
break;
820821
case 10:
821822
case 12:
822-
/* #line 282 "parser.y" */
823+
/* #line 276 "parser.y" */
823824
{
824825
jjgotominor.jj36 = phannot_ret_named_item(jjmsp[-2].minor.jj0, jjmsp[0].minor.jj36);
825826
jj_destructor(7,&jjmsp[-1].minor);
826827
}
827-
/* #line 835 "parser.c" */
828+
/* #line 829 "parser.c" */
828829
break;
829830
case 11:
830831
case 13:
831-
/* #line 286 "parser.y" */
832+
/* #line 280 "parser.y" */
832833
{
833834
jjgotominor.jj36 = phannot_ret_named_item(jjmsp[-2].minor.jj0, jjmsp[0].minor.jj36);
834835
jj_destructor(8,&jjmsp[-1].minor);
835836
}
836-
/* #line 844 "parser.c" */
837+
/* #line 838 "parser.c" */
837838
break;
838839
case 16:
839-
/* #line 308 "parser.y" */
840+
/* #line 302 "parser.y" */
840841
{
841842
jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_IDENTIFIER, jjmsp[0].minor.jj0);
842843
}
843-
/* #line 851 "parser.c" */
844+
/* #line 845 "parser.c" */
844845
break;
845846
case 17:
846-
/* #line 312 "parser.y" */
847+
/* #line 306 "parser.y" */
847848
{
848849
jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_INTEGER, jjmsp[0].minor.jj0);
849850
}
850-
/* #line 858 "parser.c" */
851+
/* #line 852 "parser.c" */
851852
break;
852853
case 18:
853-
/* #line 316 "parser.y" */
854+
/* #line 310 "parser.y" */
854855
{
855856
jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_STRING, jjmsp[0].minor.jj0);
856857
}
857-
/* #line 865 "parser.c" */
858+
/* #line 859 "parser.c" */
858859
break;
859860
case 19:
860-
/* #line 320 "parser.y" */
861+
/* #line 314 "parser.y" */
861862
{
862863
jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_DOUBLE, jjmsp[0].minor.jj0);
863864
}
864-
/* #line 872 "parser.c" */
865+
/* #line 866 "parser.c" */
865866
break;
866867
case 20:
867-
/* #line 324 "parser.y" */
868+
/* #line 318 "parser.y" */
868869
{
869870
jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_NULL, NULL);
870871
jj_destructor(11,&jjmsp[0].minor);
871872
}
872-
/* #line 880 "parser.c" */
873+
/* #line 874 "parser.c" */
873874
break;
874875
case 21:
875-
/* #line 328 "parser.y" */
876+
/* #line 322 "parser.y" */
876877
{
877878
jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_FALSE, NULL);
878879
jj_destructor(12,&jjmsp[0].minor);
879880
}
880-
/* #line 888 "parser.c" */
881+
/* #line 882 "parser.c" */
881882
break;
882883
case 22:
883-
/* #line 332 "parser.y" */
884+
/* #line 326 "parser.y" */
884885
{
885886
jjgotominor.jj36 = phannot_ret_literal_zval(PHANNOT_T_TRUE, NULL);
886887
jj_destructor(13,&jjmsp[0].minor);
887888
}
888-
/* #line 896 "parser.c" */
889+
/* #line 890 "parser.c" */
889890
break;
890891
case 23:
891-
/* #line 336 "parser.y" */
892+
/* #line 330 "parser.y" */
892893
{
893894
jjgotominor.jj36 = phannot_ret_array(jjmsp[-1].minor.jj36);
894895
jj_destructor(14,&jjmsp[-2].minor);
895896
jj_destructor(15,&jjmsp[0].minor);
896897
}
897-
/* #line 905 "parser.c" */
898+
/* #line 899 "parser.c" */
898899
break;
899900
case 24:
900-
/* #line 340 "parser.y" */
901+
/* #line 334 "parser.y" */
901902
{
902903
jjgotominor.jj36 = phannot_ret_array(jjmsp[-1].minor.jj36);
903904
jj_destructor(16,&jjmsp[-2].minor);
904905
jj_destructor(17,&jjmsp[0].minor);
905906
}
906-
/* #line 914 "parser.c" */
907+
/* #line 908 "parser.c" */
907908
break;
908909
};
909910
jjgoto = jjRuleInfo[jjruleno].lhs;
@@ -945,16 +946,16 @@ static void jj_syntax_error(
945946
){
946947
phannot_ARG_FETCH;
947948
#define JTOKEN (jjminor.jj0)
948-
/* #line 159 "parser.y" */
949+
/* #line 153 "parser.y" */
949950

950951
if (status->scanner_state->start_length) {
951952
{
952953

953954
char *token_name = NULL;
954955
const phannot_token_names *tokens = phannot_tokens;
955956
int token_found = 0;
956-
int active_token = status->scanner_state->active_token;
957-
int near_length = status->scanner_state->start_length;
957+
uint active_token = status->scanner_state->active_token;
958+
uint near_length = status->scanner_state->start_length;
958959

959960
if (active_token) {
960961
do {
@@ -1008,7 +1009,7 @@ static void jj_syntax_error(
10081009

10091010
status->status = PHANNOT_PARSING_FAILED;
10101011

1011-
/* #line 1019 "parser.c" */
1012+
/* #line 1013 "parser.c" */
10121013
phannot_ARG_STORE; /* Suppress warning about unused %extra_argument variable */
10131014
}
10141015

ext/annotations/parser.h

-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
#ifndef PHALCON_ANNOTATIONS_PARSER_H
2-
#define PHALCON_ANNOTATIONS_PARSER_H
3-
41
#define PHANNOT_COMMA 1
52
#define PHANNOT_AT 2
63
#define PHANNOT_IDENTIFIER 3
@@ -18,5 +15,3 @@
1815
#define PHANNOT_BRACKET_CLOSE 15
1916
#define PHANNOT_SBRACKET_OPEN 16
2017
#define PHANNOT_SBRACKET_CLOSE 17
21-
22-
#endif /* PHALCON_ANNOTATIONS_PARSER_H */

ext/annotations/parser.y

+2-2
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ static zval *phannot_ret_annotation(phannot_parser_token *name, zval *arguments,
157157
char *token_name = NULL;
158158
const phannot_token_names *tokens = phannot_tokens;
159159
int token_found = 0;
160-
int active_token = status->scanner_state->active_token;
161-
int near_length = status->scanner_state->start_length;
160+
uint active_token = status->scanner_state->active_token;
161+
uint near_length = status->scanner_state->start_length;
162162

163163
if (active_token) {
164164
do {

0 commit comments

Comments
 (0)