mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-26 11:50:59 +00:00
Fix invalid type lookup for empty type string. Closes #2947
This commit is contained in:
+26
-11
@@ -134,6 +134,30 @@ static void Config2XML(pugi::xml_node &parent, const SDObject &child)
|
||||
}
|
||||
}
|
||||
|
||||
static SDBasic getType(const char *typeStr)
|
||||
{
|
||||
if(!typeStr)
|
||||
return SDBasic::Chunk;
|
||||
|
||||
const SDBasic types[] = {
|
||||
SDBasic::Array, SDBasic::String, SDBasic::UnsignedInteger,
|
||||
SDBasic::SignedInteger, SDBasic::Float, SDBasic::Boolean,
|
||||
};
|
||||
|
||||
static rdcarray<rdcstr> basicTypeStrings;
|
||||
if(basicTypeStrings.empty())
|
||||
{
|
||||
for(SDBasic t : types)
|
||||
basicTypeStrings.push_back(ToStr(t));
|
||||
}
|
||||
|
||||
int idx = basicTypeStrings.indexOf(typeStr);
|
||||
if(idx >= 0)
|
||||
return types[idx];
|
||||
|
||||
return SDBasic::Chunk;
|
||||
}
|
||||
|
||||
static SDObject *XML2Config(pugi::xml_node &obj)
|
||||
{
|
||||
SDObject *ret =
|
||||
@@ -172,20 +196,11 @@ static SDObject *XML2Config(pugi::xml_node &obj)
|
||||
|
||||
SDObject *valueObj = NULL;
|
||||
|
||||
const SDBasic types[] = {
|
||||
SDBasic::Array, SDBasic::String, SDBasic::UnsignedInteger,
|
||||
SDBasic::SignedInteger, SDBasic::Float, SDBasic::Boolean,
|
||||
};
|
||||
|
||||
static rdcarray<rdcstr> basicTypeStrings;
|
||||
for(SDBasic t : types)
|
||||
basicTypeStrings.push_back(ToStr(t));
|
||||
|
||||
SDBasic type = types[basicTypeStrings.indexOf(obj.attribute("type").as_string())];
|
||||
SDBasic type = getType(obj.attribute("type").as_string());
|
||||
|
||||
if(type == SDBasic::Array)
|
||||
{
|
||||
type = types[basicTypeStrings.indexOf(obj.attribute("elemtype").as_string())];
|
||||
type = getType(obj.attribute("elemtype").as_string());
|
||||
valueObj = makeSDArray("value"_lit);
|
||||
|
||||
uint32_t i = 0;
|
||||
|
||||
Reference in New Issue
Block a user