aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2014-10-24 22:26:04 -0700
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2014-10-24 22:26:04 -0700
commite47d21028b95cb907f2cf0dce46c34024ee1b90c (patch)
treeb56a6b4f5697b4bd558bafc281155b7498260d95 /src
parentd0b53a64bdbeaa71d80210640534abea1a85f8d2 (diff)
Optimize memory allocation
Diffstat (limited to 'src')
-rw-r--r--src/core/basetypes/MCData.cc1
-rw-r--r--src/core/basetypes/MCString.cc3
2 files changed, 4 insertions, 0 deletions
diff --git a/src/core/basetypes/MCData.cc b/src/core/basetypes/MCData.cc
index 60b8ff8f..b851ed22 100644
--- a/src/core/basetypes/MCData.cc
+++ b/src/core/basetypes/MCData.cc
@@ -62,6 +62,7 @@ Data::Data(const char * bytes, unsigned int length)
{
mBytes = NULL;
reset();
+ allocate(length);
appendBytes(bytes, length);
}
diff --git a/src/core/basetypes/MCString.cc b/src/core/basetypes/MCString.cc
index d88a41f9..0e862067 100644
--- a/src/core/basetypes/MCString.cc
+++ b/src/core/basetypes/MCString.cc
@@ -690,6 +690,7 @@ String::String(const UChar * unicodeChars)
{
mUnicodeChars = NULL;
reset();
+ allocate(u_strlen(unicodeChars));
appendCharacters(unicodeChars);
}
@@ -697,6 +698,7 @@ String::String(const UChar * unicodeChars, unsigned int length)
{
mUnicodeChars = NULL;
reset();
+ allocate(length);
appendCharactersLength(unicodeChars, length);
}
@@ -725,6 +727,7 @@ String::String(const char * bytes, unsigned int length, const char * charset)
{
mUnicodeChars = NULL;
reset();
+ allocate(length);
if (charset == NULL) {
appendUTF8CharactersLength(bytes, length);
}