index 053a7afda863104859e56ea7c1d3105b253cdebd..ebd95d3c4ba80cba95b282dc2a0db60a4d5673bb 100644 (file)
@@ -175,6 +175,7 @@ output_get_descr(char *desc_name, char *index)
for (results = assignments; results != NULL; results = results->next)
{
const struct variable *v = find_variable(results->variable);
+ char *str_zero = mm_strdup("0");
switch (results->value)
{
@@ -188,7 +189,8 @@ output_get_descr(char *desc_name, char *index)
break;
}
fprintf(yyout, "%s,", get_dtype(results->value));
- ECPGdump_a_type(yyout, v->name, v->type, v->brace_level, NULL, NULL, -1, NULL, NULL, mm_strdup("0"), NULL, NULL);
+ ECPGdump_a_type(yyout, v->name, v->type, v->brace_level, NULL, NULL, -1, NULL, NULL, str_zero, NULL, NULL);
+ free(str_zero);
}
drop_assignments();
fputs("ECPGd_EODT);\n", yyout);
@@ -292,8 +294,12 @@ output_set_descr(char *desc_name, char *index)
case ECPGd_indicator:
case ECPGd_length:
case ECPGd_type:
- fprintf(yyout, "%s,", get_dtype(results->value));
- ECPGdump_a_type(yyout, v->name, v->type, v->brace_level, NULL, NULL, -1, NULL, NULL, mm_strdup("0"), NULL, NULL);
+ {
+ char *str_zero = mm_strdup("0");
+ fprintf(yyout, "%s,", get_dtype(results->value));
+ ECPGdump_a_type(yyout, v->name, v->type, v->brace_level, NULL, NULL, -1, NULL, NULL, str_zero, NULL, NULL);
+ free(str_zero);
+ }
break;
default:
index c70f2986962d6323b8ae197e8a21f1985649cacc..0453409d373cab6c93f022b4d7d4f64db548c9e6 100644 (file)
extern YYSTYPE yylval;
static int xcdepth = 0; /* depth of nesting in slash-star comments */
-static char *dolqstart; /* current $foo$ quote start string */
+static char *dolqstart = NULL; /* current $foo$ quote start string */
static YY_BUFFER_STATE scanbufhandle;
static char *scanbuf;
@@ -550,6 +550,8 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})(.*\\{space})*.
}
<SQL>{dolqdelim} {
token_start = yytext;
+ if (dolqstart)
+ free(dolqstart);
dolqstart = mm_strdup(yytext);
BEGIN(xdolq);
startlit();