Use C++ allocation/freeing for text masking and multiline processing

This commit is contained in:
Simon Robertshaw 2012-06-18 17:07:27 +01:00
parent 7ffaa421d1
commit 8c608ee8b9
2 changed files with 6 additions and 5 deletions

View File

@ -28,8 +28,8 @@ void Textblock::SetText(std::string text)
void Textblock::updateMultiline() void Textblock::updateMultiline()
{ {
char * rawText = (char*)malloc(text.length()+1); char * rawText = new char[text.length()+1];
memcpy(rawText, text.c_str(), text.length()); std::copy(text.begin(), text.end(), rawText);
rawText[text.length()] = 0; rawText[text.length()] = 0;
int lines = 1; int lines = 1;
@ -60,7 +60,8 @@ void Textblock::updateMultiline()
{ {
Size.Y = lines*12; Size.Y = lines*12;
} }
textLines = rawText; textLines = std::string(rawText);
delete[] rawText;
} }
void Textblock::Draw(const Point &screenPos) void Textblock::Draw(const Point &screenPos)

View File

@ -129,10 +129,10 @@ void Textbox::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
{ {
if(masked) if(masked)
{ {
char * tempText = new char[text.length()]; char * tempText = new char[text.length()+1];
std::fill(tempText, tempText+text.length(), 0x8d); std::fill(tempText, tempText+text.length(), 0x8d);
tempText[text.length()] = 0; tempText[text.length()] = 0;
displayText = tempText; displayText = std::string(tempText);
delete tempText; delete tempText;
} }
else else