aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kgraphics.cpp
diff options
context:
space:
mode:
authorColin Snover2017-01-05 21:05:22 -0600
committerColin Snover2017-02-05 12:38:21 -0600
commit10d97ce37947362e6fa7161cd85221f59ca49490 (patch)
tree096af451474abe5ab3f65e61016a0ff2d413608c /engines/sci/engine/kgraphics.cpp
parentb1c3332fddbb16838f1a654d6fe35ddbe09bd051 (diff)
downloadscummvm-rg350-10d97ce37947362e6fa7161cd85221f59ca49490.tar.gz
scummvm-rg350-10d97ce37947362e6fa7161cd85221f59ca49490.tar.bz2
scummvm-rg350-10d97ce37947362e6fa7161cd85221f59ca49490.zip
SCI: Fix more unsafe C-string usage
Diffstat (limited to 'engines/sci/engine/kgraphics.cpp')
-rw-r--r--engines/sci/engine/kgraphics.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index 08e3115e48..07a1c47547 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -824,8 +824,7 @@ void _k_GenericDrawControl(EngineState *s, reg_t controlObject, bool hilite) {
int16 celNo;
int16 priority;
reg_t listSeeker;
- Common::String *listStrings = NULL;
- const char **listEntries = NULL;
+ Common::String *listStrings = nullptr;
bool isAlias = false;
rect = kControlCreateRect(x, y,
@@ -922,11 +921,9 @@ void _k_GenericDrawControl(EngineState *s, reg_t controlObject, bool hilite) {
if (listCount) {
// We create a pointer-list to the different strings, we also find out whats upper and cursor position
listSeeker = textReference;
- listEntries = (const char**)malloc(sizeof(char *) * listCount);
listStrings = new Common::String[listCount];
for (i = 0; i < listCount; i++) {
listStrings[i] = s->_segMan->getString(listSeeker);
- listEntries[i] = listStrings[i].c_str();
if (listSeeker.getOffset() == upperOffset)
upperPos = i;
if (listSeeker.getOffset() == cursorOffset)
@@ -936,8 +933,7 @@ void _k_GenericDrawControl(EngineState *s, reg_t controlObject, bool hilite) {
}
debugC(kDebugLevelGraphics, "drawing list control %04x:%04x to %d,%d, diff %d", PRINT_REG(controlObject), x, y, SCI_MAX_SAVENAME_LENGTH);
- g_sci->_gfxControls16->kernelDrawList(rect, controlObject, maxChars, listCount, listEntries, fontId, style, upperPos, cursorPos, isAlias, hilite);
- free(listEntries);
+ g_sci->_gfxControls16->kernelDrawList(rect, controlObject, maxChars, listCount, listStrings, fontId, style, upperPos, cursorPos, isAlias, hilite);
delete[] listStrings;
return;