summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2019-06-20 10:25:54 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2019-06-20 11:06:17 +0300
commit46a1400d950a735d85fb061b1d7264f1f8d3c542 (patch)
tree41ee0e649eaab955618b07d750edb95c0fe74e1e /src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp
parentd66674bf53a572c1788ae35649539c3d381de875 (diff)
Fix memory leak from showRenderStats
Use new dynamic strings instead of registering strings to regular string table, and don't use the conversion function of the string table, as that registers the string. Task-number: QT3DS-3680 Change-Id: I930eb013538c819eac6acc06be86d287c3dfc0c9 Reviewed-by: Jari Karppinen <jari.karppinen@qt.io> Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Diffstat (limited to 'src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp')
-rw-r--r--src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp b/src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp
index 0b3f665..c40ff55 100644
--- a/src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp
+++ b/src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp
@@ -1851,9 +1851,11 @@ namespace render {
ITextTextureAtlas *theTextureAtlas = m_qt3dsContext.GetTextureAtlas();
QSize theWindow = m_qt3dsContext.GetWindowDimensions();
- const wchar_t *wText = m_StringTable->GetWideStr(text);
+ // Use dynamic strings to avoid memory leakage
+ QByteArray theText(text);
+ CStringHandle textHandle = m_StringTable->getDynamicHandle(theText);
STextRenderInfo theInfo;
- theInfo.m_Text = m_StringTable->RegisterStr(wText);
+ theInfo.m_Text = m_StringTable->HandleToStr(textHandle);
theInfo.m_FontSize = 20;
// text scale 2% of screen we don't scale Y though because it becomes unreadable
theInfo.m_ScaleX = (theWindow.width() / 100.0f) * 1.5f / (theInfo.m_FontSize);
@@ -1894,6 +1896,7 @@ namespace render {
QT3DS_FREE(m_Context->GetAllocator(),
theRenderTextDetails.first.m_Vertices.begin());
}
+ m_StringTable->releaseDynamicHandle(textHandle);
}
}
}