diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/interfaces/ecpg/preproc/extern.h | 4 | ||||
-rw-r--r-- | src/interfaces/ecpg/preproc/pgc.l | 45 |
2 files changed, 2 insertions, 47 deletions
diff --git a/src/interfaces/ecpg/preproc/extern.h b/src/interfaces/ecpg/preproc/extern.h index d0c4e470166..aef65657da2 100644 --- a/src/interfaces/ecpg/preproc/extern.h +++ b/src/interfaces/ecpg/preproc/extern.h @@ -76,7 +76,7 @@ extern char *hashline_number(void); extern int base_yyparse(void); extern int base_yylex(void); extern void base_yyerror(const char *); -extern void *mm_alloc(size_t), *mm_realloc(void *, size_t); +extern void *mm_alloc(size_t); extern char *mm_strdup(const char *); extern void mmerror(int errorcode, enum errortype type, const char *error,...) pg_attribute_printf(3, 4); extern void mmfatal(int errorcode, const char *error,...) pg_attribute_printf(2, 3) pg_attribute_noreturn(); @@ -105,9 +105,7 @@ extern void remove_variables(int); extern struct variable *new_variable(const char *, struct ECPGtype *, int); extern const ScanKeyword *ScanCKeywordLookup(const char *); extern const ScanKeyword *ScanECPGKeywordLookup(const char *text); -extern void scanner_init(const char *); extern void parser_init(void); -extern void scanner_finish(void); extern int filtered_base_yylex(void); /* return codes */ diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l index 91ee44f091e..5ccda8da6b1 100644 --- a/src/interfaces/ecpg/preproc/pgc.l +++ b/src/interfaces/ecpg/preproc/pgc.l @@ -34,8 +34,6 @@ extern YYSTYPE base_yylval; static int xcdepth = 0; /* depth of nesting in slash-star comments */ static char *dolqstart = NULL; /* current $foo$ quote start string */ -static YY_BUFFER_STATE scanbufhandle; -static char *scanbuf; /* * literalbuf is used to accumulate literal values when multiple rules @@ -1436,7 +1434,7 @@ lex_init(void) if (literalbuf == NULL) { literalalloc = 1024; - literalbuf = (char *) malloc(literalalloc); + literalbuf = (char *) mm_alloc(literalalloc); } startlit(); @@ -1664,44 +1662,3 @@ static bool isinformixdefine(void) return false; } - -/* - * Called before any actual parsing is done - */ -void -scanner_init(const char *str) -{ - Size slen = strlen(str); - - /* - * Might be left over after ereport() - */ - if (YY_CURRENT_BUFFER) - yy_delete_buffer(YY_CURRENT_BUFFER); - - /* - * Make a scan buffer with special termination needed by flex. - */ - scanbuf = mm_alloc(slen + 2); - memcpy(scanbuf, str, slen); - scanbuf[slen] = scanbuf[slen + 1] = YY_END_OF_BUFFER_CHAR; - scanbufhandle = yy_scan_buffer(scanbuf, slen + 2); - - /* initialize literal buffer to a reasonable but expansible size */ - literalalloc = 128; - literalbuf = (char *) mm_alloc(literalalloc); - startlit(); - - BEGIN(INITIAL); -} - - -/* - * Called after parsing is done to clean up after scanner_init() - */ -void -scanner_finish(void) -{ - yy_delete_buffer(scanbufhandle); - free(scanbuf); -} |