Cdb: Fix getTypeName return value for non existing types

Returning an empty null terminated char[] instead of a nullptr.
This fixes usecases where the return value is implicitly converted
to a std::string.

Change-Id: I5a3985880632a9bcc07765f8b27329bdd1e83347
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
David Schulz
2016-10-19 13:29:20 +02:00
parent ff052d7132
commit bc41012c7d

View File

@@ -87,12 +87,14 @@ char *getTypeName(ULONG64 module, ULONG typeId)
symbols->GetTypeName(module, typeId, NULL, 0, &size); symbols->GetTypeName(module, typeId, NULL, 0, &size);
if (size > 0) { if (size > 0) {
typeName = new char[size]; typeName = new char[size];
if (FAILED(symbols->GetTypeName(module, typeId, typeName, size, &size))) { if (SUCCEEDED(symbols->GetTypeName(module, typeId, typeName, size, &size)))
return typeName;
else
delete[] typeName; delete[] typeName;
}
typeName = new char[1]; typeName = new char[1];
typeName[0] = 0; typeName[0] = 0;
}
}
return typeName; return typeName;
} }