Merge "Optimising GetHashCode()" into devel_3.0_main
[platform/framework/native/appfw.git] / src / io / FIo_RegistryCore.cpp
index 714c8a8..6cee81a 100644 (file)
@@ -307,7 +307,10 @@ _RegistryCore::Parse(void)
                                                   "[E_PARSING_FAILED] Entry name could not be parsed.");
                        }
 
-                       line.SubString(firstTokenPos + 1, entryVal); // extract entry value
+                       if (line.GetLength() > firstTokenPos + 1)
+                       {
+                               line.SubString(firstTokenPos + 1, entryVal); // extract entry value
+                       }
 
                        // check if entry value contains invalid chars
                        pEntryValue.reset(_StringConverter::CopyToCharArrayN(entryVal));
@@ -995,20 +998,16 @@ _RegistryCore::Write(void)
                return E_SUCCESS;
        }
 
-       result r = E_SUCCESS;
-
-       String openMode(L"w+");
-       unique_ptr<_FileImpl> pFileImpl(new (std::nothrow) _FileImpl);
-       SysTryReturnResult(NID_IO, pFileImpl != null, E_OUT_OF_MEMORY, "The memory is insufficient.");
+       result r = __pFileImpl->Seek(FILESEEKPOSITION_BEGIN, 0);
+       SysTryReturn(NID_IO, !IsFailed(r), r, r, "[%s] Propagated.", GetErrorMessage(r));
 
-       //TODO: Secure mode is to be handled
-       r = pFileImpl->Construct(_regPath, "w+", null);
+       r = __pFileImpl->Truncate(0);
        SysTryReturn(NID_IO, !IsFailed(r), r, r, "[%s] Propagated.", GetErrorMessage(r));
 
-       r = pFileImpl->Write(_pBuffer, _length);
+       r = __pFileImpl->Write(_pBuffer, _length);
        SysTryReturn(NID_IO, !IsFailed(r), r, r, "[%s] Propagated.", GetErrorMessage(r));
 
-       r = pFileImpl->Flush();
+       r = __pFileImpl->Flush();
        SysTryReturn(NID_IO, !IsFailed(r), r, r, "[%s] Propagated.", GetErrorMessage(r));
 
        return r;