Fixed N_SE-37599. Fixed N_SE-39684. Small memory leak fixed.
authorOleksandr Kaspruk <a.kaspruk@samsung.com>
Tue, 28 May 2013 15:10:09 +0000 (18:10 +0300)
committerOleksandr Kaspruk <a.kaspruk@samsung.com>
Thu, 30 May 2013 12:15:49 +0000 (15:15 +0300)
Change-Id: I9e1945068357db08e30fe55ae8ae439dd9e2356e
Signed-off-by: Oleksandr Kaspruk <a.kaspruk@samsung.com>
lib/armv7-a/libarengine.so
lib/x86/libarengine.so
src/FUixVisionQrCodeGenerator.cpp
src/FUixVision_ImageFeatureManagerImpl.cpp

index 5462209..362ecad 100755 (executable)
Binary files a/lib/armv7-a/libarengine.so and b/lib/armv7-a/libarengine.so differ
index 992d74f..f8802b3 100755 (executable)
Binary files a/lib/x86/libarengine.so and b/lib/x86/libarengine.so differ
index 1c3b8ba..38ccbc2 100644 (file)
@@ -59,7 +59,8 @@ QrCodeGenerator::EncodeToBufferN(const Tizen::Base::String& message, QrCodeMode
             "message must not be empty. [E_INVALID_ARG]");
 
     Tizen::Text::Utf8Encoding utf8;
-    __pQrCodeGeneratorImpl->Encode((char*) utf8.GetBytesN(message)->GetPointer(), mode, error_level, compatibility);
+    std::unique_ptr<Tizen::Base::ByteBuffer> pMessageBuffer(utf8.GetBytesN(message));
+    __pQrCodeGeneratorImpl->Encode((char*) pMessageBuffer->GetPointer(), mode, error_level, compatibility);
     __pQrCodeGeneratorImpl->GetSize(width, height);
 
     std::unique_ptr<Tizen::Base::ByteBuffer> pBuffer(new (std::nothrow) Tizen::Base::ByteBuffer());
@@ -83,14 +84,15 @@ QrCodeGenerator::EncodeToFile(const Tizen::Base::String& message, QrCodeMode mod
 {
     SysAssertf(__pQrCodeGeneratorImpl != null, "Not yet constructed! Consruct() should be called before use.");
 
-     SysSecureTryReturnResult(NID_UIX, !message.IsEmpty(), E_INVALID_ARG,
-             "message must not be empty. [E_INVALID_ARG]");
+    SysSecureTryReturnResult(NID_UIX, !message.IsEmpty(), E_INVALID_ARG,
+            "message must not be empty. [E_INVALID_ARG]");
 
-     SysSecureTryReturnResult(NID_UIX, !imageFilePath.IsEmpty(), E_INVALID_ARG,
-             "image path must not be empty. [E_INVALID_ARG]");
+    SysSecureTryReturnResult(NID_UIX, !imageFilePath.IsEmpty(), E_INVALID_ARG,
+            "image path must not be empty. [E_INVALID_ARG]");
 
-     Tizen::Text::Utf8Encoding utf8;
-     if (!__pQrCodeGeneratorImpl->Encode((char*) utf8.GetBytesN(message)->GetPointer(), mode, errorCorrectionLevel, compatibility))
+    Tizen::Text::Utf8Encoding utf8;
+    std::unique_ptr<Tizen::Base::ByteBuffer> pBuffer(utf8.GetBytesN(message));
+     if (!__pQrCodeGeneratorImpl->Encode((char*) pBuffer->GetPointer(), mode, errorCorrectionLevel, compatibility))
      {
          return E_FAILURE;
      }
index 856ffad..5454ad4 100644 (file)
@@ -93,7 +93,8 @@ _ImageFeatureManagerImpl::AddFeature(const unsigned char* data, int width, int h
         return -1;
     }
     Tizen::Text::Utf8Encoding utf8;
-    int index = (int) __imageFeatureManager->addImageToDB(data, width, height, (char*) utf8.GetBytesN(info)->GetPointer());
+    std::unique_ptr<Tizen::Base::ByteBuffer> pBuffer(utf8.GetBytesN(info));
+    int index = (int) __imageFeatureManager->addImageToDB(data, width, height, (char*) pBuffer->GetPointer());
 
     if (index > -1)
     {
@@ -157,14 +158,16 @@ _ImageFeatureManagerImpl::SaveDB(bool optimizeDatabase, const Tizen::Base::Strin
         SysSecureTryReturnResult(NID_UIX, !dbPath->IsEmpty(), E_INVALID_ARG,
                 "database path must not be empty. [E_INVALID_ARG]");
         Tizen::Text::Utf8Encoding utf8;
-        result = __imageFeatureManager->saveDB(optimizeDatabase, (const char*) utf8.GetBytesN(*dbPath)->GetPointer()) ? E_SUCCESS : E_FAILURE;
+        std::unique_ptr<Tizen::Base::ByteBuffer> pBuffer(utf8.GetBytesN(*dbPath));
+        result = __imageFeatureManager->saveDB(optimizeDatabase, (const char*) pBuffer->GetPointer()) ? E_SUCCESS : E_FAILURE;
     }
     else
     {
         if (!__path.IsEmpty())
         {
             Tizen::Text::Utf8Encoding utf8;
-            result = __imageFeatureManager->saveDB(optimizeDatabase, (const char*) utf8.GetBytesN(__path)->GetPointer()) ? E_SUCCESS : E_FAILURE;
+            std::unique_ptr<Tizen::Base::ByteBuffer> pBuffer(utf8.GetBytesN(__path));
+            result = __imageFeatureManager->saveDB(optimizeDatabase, (const char*) pBuffer->GetPointer()) ? E_SUCCESS : E_FAILURE;
             if (E_FAILURE == result && __readOnly)
             {
                 result = E_INVALID_ARG;
@@ -202,7 +205,8 @@ _ImageFeatureManagerImpl::OpenDB(const Tizen::Base::String& dbpath)
     __imageFeatureManager->initDB();
 
     Tizen::Text::Utf8Encoding utf8;
-    switch (__imageFeatureManager->openDB((const char*) utf8.GetBytesN(dbpath)->GetPointer()))
+    std::unique_ptr<Tizen::Base::ByteBuffer> pBuffer(utf8.GetBytesN(dbpath));
+    switch (__imageFeatureManager->openDB((const char*) pBuffer->GetPointer()))
     {
     case 0: //ok
         __path = dbpath;