Commit 6a8e2a9c authored by pem@mysql.com's avatar pem@mysql.com

Pass thd as an argument to yylex().

parent 87fbeb40
......@@ -442,13 +442,13 @@ inline static uint int_token(const char *str,uint length)
// STATE_OPERATOR_OR_IDENT ; last state was an ident, text or number
// (which can't be followed by a signed number)
int yylex(void *arg)
int yylex(void *arg, void *yythd)
{
reg1 uchar c;
int tokval;
uint length;
enum lex_states state,prev_state;
LEX *lex=current_lex;
LEX *lex= &(((THD *)yythd)->lex);
YYSTYPE *yylval=(YYSTYPE*) arg;
lex->yylval=yylval; // The global state
......
......@@ -17,10 +17,12 @@
/* sql_yacc.yy */
%{
/* Pass thd as an arg to yyparse(). The type will be void*, so it
** must be cast to (THD*) when used. Use the YYTHD macro for this.
/* thd is passed as an arg to yyparse(), and subsequently to yylex().
** The type will be void*, so it must be cast to (THD*) when used.
** Use the YYTHD macro for this.
*/
#define YYPARSE_PARAM yythd
#define YYLEX_PARAM yythd
#define YYTHD ((THD *)yythd)
#define MYSQL_YACC
......@@ -37,7 +39,7 @@
#include <myisammrg.h>
extern void yyerror(const char*);
int yylex(void *yylval);
int yylex(void *yylval, void *yythd);
#define yyoverflow(A,B,C,D,E,F) if (my_yyoverflow((B),(D),(int*) (F))) { yyerror((char*) (A)); return 2; }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment