From bc41012c7d4e552e37ae11785543b878042daab0 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 19 Oct 2016 13:29:20 +0200 Subject: [PATCH] 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 Reviewed-by: David Schulz --- src/libs/qtcreatorcdbext/pytype.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/libs/qtcreatorcdbext/pytype.cpp b/src/libs/qtcreatorcdbext/pytype.cpp index efa998b5cbb..9b14b6fbd8e 100644 --- a/src/libs/qtcreatorcdbext/pytype.cpp +++ b/src/libs/qtcreatorcdbext/pytype.cpp @@ -87,12 +87,14 @@ char *getTypeName(ULONG64 module, ULONG typeId) symbols->GetTypeName(module, typeId, NULL, 0, &size); if (size > 0) { 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; - typeName = new char[1]; - typeName[0] = 0; - } } + typeName = new char[1]; + typeName[0] = 0; + return typeName; }