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()
{
char * rawText = (char*)malloc(text.length()+1);
memcpy(rawText, text.c_str(), text.length());
char * rawText = new char[text.length()+1];
std::copy(text.begin(), text.end(), rawText);
rawText[text.length()] = 0;
int lines = 1;
@ -60,7 +60,8 @@ void Textblock::updateMultiline()
{
Size.Y = lines*12;
}
textLines = rawText;
textLines = std::string(rawText);
delete[] rawText;
}
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)
{
char * tempText = new char[text.length()];
char * tempText = new char[text.length()+1];
std::fill(tempText, tempText+text.length(), 0x8d);
tempText[text.length()] = 0;
displayText = tempText;
displayText = std::string(tempText);
delete tempText;
}
else