mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
- We weren't counting newlines in heredocs. The only place which is still questionable
is when there's a \ followed by a newline but it seems we have a parse error in this case anyways. - Fixed the alloca() macros so that the alloca() #define in win32 mode won't clash with the real win32 alloca().
This commit is contained in:
parent
0f99eeb29f
commit
1225d0307b
@ -1248,6 +1248,7 @@ ESCAPED_AND_WHITESPACE [\n\t\r #'.:;,()|^&+-/*=%!~<>?@]+
|
||||
|
||||
<ST_IN_SCRIPTING>"<<<"{TABS_AND_SPACES}{LABEL}("\r")?"\n" {
|
||||
char *s;
|
||||
CG(zend_lineno)++;
|
||||
CG(heredoc_len) = yyleng-3-1-(yytext[yyleng-2]=='\r'?1:0);
|
||||
s = yytext+3;
|
||||
while ((*s == ' ') || (*s == '\t')) {
|
||||
@ -1276,6 +1277,7 @@ ESCAPED_AND_WHITESPACE [\n\t\r #'.:;,()|^&+-/*=%!~<>?@]+
|
||||
int label_len;
|
||||
unsigned char unput_semicolon;
|
||||
|
||||
CG(zend_lineno)++;
|
||||
if (yytext[yyleng-2]=='\r') {
|
||||
label_len = yyleng-2;
|
||||
} else {
|
||||
|
@ -807,9 +807,10 @@ static void call_overloaded_function(int arg_count, zval *return_value, HashTabl
|
||||
|
||||
|
||||
#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && (WINNT|WIN32))
|
||||
# define do_alloca(p) alloca(p)
|
||||
# define free_alloca(p)
|
||||
#else
|
||||
# define alloca(p) emalloc(p)
|
||||
# define do_alloca(p) emalloc(p)
|
||||
# define free_alloca(p) efree(p)
|
||||
#endif
|
||||
|
||||
@ -826,7 +827,7 @@ void execute(zend_op_array *op_array ELS_DC)
|
||||
zend_function *function_being_called=NULL;
|
||||
zval **object_ptr=NULL;
|
||||
#if !defined (__GNUC__) || __GNUC__ < 2
|
||||
temp_variable *Ts = (temp_variable *) alloca(sizeof(temp_variable)*op_array->T);
|
||||
temp_variable *Ts = (temp_variable *) do_alloca(sizeof(temp_variable)*op_array->T);
|
||||
#else
|
||||
temp_variable Ts[op_array->T];
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user