mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-01-18 22:31:36 +00:00
ir_value_set_string needs to use a strdup which doesn't return NULL for an emptystring
This commit is contained in:
parent
c12e60a510
commit
af3d9e0bdf
2 changed files with 13 additions and 2 deletions
13
ir.c
13
ir.c
|
@ -749,11 +749,22 @@ bool ir_value_set_field(ir_value *self, ir_value *fld)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *ir_strdup(const char *str)
|
||||||
|
{
|
||||||
|
if (str && !*str) {
|
||||||
|
/* actually dup empty strings */
|
||||||
|
char *out = mem_a(1);
|
||||||
|
*out = 0;
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
return util_strdup(str);
|
||||||
|
}
|
||||||
|
|
||||||
bool ir_value_set_string(ir_value *self, const char *str)
|
bool ir_value_set_string(ir_value *self, const char *str)
|
||||||
{
|
{
|
||||||
if (self->vtype != TYPE_STRING)
|
if (self->vtype != TYPE_STRING)
|
||||||
return false;
|
return false;
|
||||||
self->constval.vstring = util_strdup(str);
|
self->constval.vstring = ir_strdup(str);
|
||||||
self->isconst = true;
|
self->isconst = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
2
parser.c
2
parser.c
|
@ -174,7 +174,7 @@ ast_value* parser_const_float_0(parser_t *parser)
|
||||||
return parser->imm_float_zero;
|
return parser->imm_float_zero;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *parser_strdup(const char *str)
|
static char *parser_strdup(const char *str)
|
||||||
{
|
{
|
||||||
if (str && !*str) {
|
if (str && !*str) {
|
||||||
/* actually dup empty strings */
|
/* actually dup empty strings */
|
||||||
|
|
Loading…
Reference in a new issue