From 8b5370313dcc00a45ea5c3e8b4c497bc00fd8e13 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Tue, 11 Jun 2013 21:55:13 -0700 Subject: Allegedly remove all manual memory management --- src/map/magic-interpreter-lexer.lpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'src/map/magic-interpreter-lexer.lpp') diff --git a/src/map/magic-interpreter-lexer.lpp b/src/map/magic-interpreter-lexer.lpp index f593d4a..c0a554b 100644 --- a/src/map/magic-interpreter-lexer.lpp +++ b/src/map/magic-interpreter-lexer.lpp @@ -102,24 +102,25 @@ "WAIT" {FIXLOC; return SLEEP;} \{([^\}]|\\.)*\} { - char *string = strdup(yytext); - magic_frontend_lval.s = string; + magic_frontend_lval.s = dumb_string::copy(yytext); FIXLOC; return SCRIPT_DATA; } \"([^\"]|\\.)*\" { - char *string = strdup(yytext + 1); - char *src = string; - char *dst = string; + dumb_string string = dumb_string::copy(yytext + 1); + const char *src = string.c_str(); + char *dst = &string[0]; while (*src && *src != '"') - if (*src == '\\') { - *dst++ = src[1]; - src += 2; + if (*src == '\\') + { + *dst++ = src[1]; + src += 2; + } + else + *dst++ = *src++; } - else - *dst++ = *src++; *dst = '\0'; /* terminate */ magic_frontend_lval.s = string; FIXLOC; @@ -139,7 +140,7 @@ } [a-zA-Z][-_a-zA-Z0-9]* { - magic_frontend_lval.s = strdup(yytext); + magic_frontend_lval.s = dumb_string::copy(yytext); FIXLOC; return ID; } -- cgit v1.2.3-60-g2f50