summaryrefslogtreecommitdiff
path: root/registry/source/registry.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'registry/source/registry.cxx')
-rw-r--r--registry/source/registry.cxx201
1 files changed, 73 insertions, 128 deletions
diff --git a/registry/source/registry.cxx b/registry/source/registry.cxx
index 139646f7cdc7..cef3630f8b7e 100644
--- a/registry/source/registry.cxx
+++ b/registry/source/registry.cxx
@@ -30,13 +30,13 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_registry.hxx"
+
#include <registry/registry.h>
#include <registry/registry.hxx>
#include <osl/process.h>
-#include "regimpl.hxx"
-#ifndef _REGKEY_HXX_
+
#include "keyimpl.hxx"
-#endif
+#include "regimpl.hxx"
#include "regkey.hxx"
#if defined(WIN32) || defined(WNT) || defined(OS2)
@@ -260,46 +260,42 @@ static RegError REGISTRY_CALLTYPE loadKey(RegHandle hReg,
rtl_uString* keyName,
rtl_uString* regFileName)
{
- ORegistry *pReg;
- ORegKey *pKey, *pNewKey;
- RegError _ret;
- if (hReg)
- {
- pReg = (ORegistry*)hReg;
- if (!pReg->isOpen())
- return REG_REGISTRY_NOT_OPEN;
- } else
- {
+ ORegistry* pReg = static_cast< ORegistry* >(hReg);
+ if (!pReg)
return REG_INVALID_REGISTRY;
- }
- if (hKey)
- {
- pKey = (ORegKey*)hKey;
+ if (!pReg->isOpen())
+ return REG_REGISTRY_NOT_OPEN;
- if (pKey->getRegistry() != pReg || pKey->isDeleted())
- return REG_INVALID_KEY;
- } else
- {
+ ORegKey* pKey = static_cast< ORegKey* >(hKey);
+ if (!pKey)
return REG_INVALID_KEY;
- }
+ if (pKey->getRegistry() != pReg)
+ return REG_INVALID_KEY;
+ if (pKey->isDeleted())
+ return REG_INVALID_KEY;
if (pKey->isReadOnly())
return REG_REGISTRY_READONLY;
- if (!pKey->openKey(keyName, (RegKeyHandle*)&pNewKey))
+
+ ORegKey* pNewKey = 0;
+ RegError _ret = pKey->openKey(keyName, (RegKeyHandle*)&pNewKey);
+ if (_ret == REG_NO_ERROR)
{
- pKey->closeKey(pNewKey);
+ pKey->releaseKey(pNewKey);
pKey->deleteKey(keyName);
}
- if ((_ret = pKey->createKey(keyName, (RegKeyHandle*)&pNewKey)))
+ _ret = pKey->createKey(keyName, (RegKeyHandle*)&pNewKey);
+ if (_ret != REG_NO_ERROR)
return _ret;
- if ((_ret = pReg->loadKey(pNewKey, regFileName)))
+ _ret = pReg->loadKey(pNewKey, regFileName);
+ if (_ret != REG_NO_ERROR)
{
- pKey->closeKey(pNewKey);
+ pKey->releaseKey(pNewKey);
pKey->deleteKey(keyName);
return _ret;
}
@@ -315,41 +311,36 @@ static RegError REGISTRY_CALLTYPE saveKey(RegHandle hReg,
rtl_uString* keyName,
rtl_uString* regFileName)
{
- ORegistry *pReg;
- ORegKey *pKey, *pNewKey;
- RegError _ret;
- if (hReg)
- {
- pReg = (ORegistry*)hReg;
- if (!pReg->isOpen())
- return REG_REGISTRY_NOT_OPEN;
- } else
- {
+ ORegistry* pReg = static_cast< ORegistry* >(hReg);
+ if (!pReg)
return REG_INVALID_REGISTRY;
- }
- if (hKey)
- {
- pKey = (ORegKey*)hKey;
+ if (!pReg->isOpen())
+ return REG_REGISTRY_NOT_OPEN;
- if (pKey->getRegistry() != pReg || pKey->isDeleted())
- return REG_INVALID_KEY;
- } else
- {
+ ORegKey* pKey = static_cast< ORegKey* >(hKey);
+ if (!pKey)
+ return REG_INVALID_KEY;
+
+ if (pKey->getRegistry() != pReg)
+ return REG_INVALID_KEY;
+ if (pKey->isDeleted())
return REG_INVALID_KEY;
- }
- if ((_ret = pKey->openKey(keyName, (RegKeyHandle*)&pNewKey)))
+ ORegKey* pNewKey = 0;
+ RegError _ret = pKey->openKey(keyName, (RegKeyHandle*)&pNewKey);
+ if (_ret != REG_NO_ERROR)
return _ret;
- if ((_ret = pReg->saveKey(pNewKey, regFileName)))
+ _ret = pReg->saveKey(pNewKey, regFileName);
+ if (_ret != REG_NO_ERROR)
{
- pKey->closeKey(pNewKey);
+ (void) pKey->releaseKey(pNewKey);
return _ret;
}
- return pKey->closeKey(pNewKey);
+ return pKey->releaseKey(pNewKey);
}
//*********************************************************************
@@ -362,114 +353,68 @@ static RegError REGISTRY_CALLTYPE mergeKey(RegHandle hReg,
sal_Bool bWarnings,
sal_Bool bReport)
{
- ORegistry *pReg;
- ORegKey *pKey, *pNewKey;
- RegError _ret;
-
- if (hReg)
- {
- pReg = (ORegistry*)hReg;
- if (!pReg->isOpen())
- return(REG_REGISTRY_NOT_OPEN);
- } else
- {
+ ORegistry* pReg = static_cast< ORegistry* >(hReg);
+ if (!pReg)
return REG_INVALID_REGISTRY;
- }
-
- if (hKey)
- {
- pKey = (ORegKey*)hKey;
+ if (!pReg->isOpen())
+ return REG_REGISTRY_NOT_OPEN;
- if (pKey->getRegistry() != pReg || pKey->isDeleted())
- return REG_INVALID_KEY;
- } else
- {
+ ORegKey* pKey = static_cast< ORegKey* >(hKey);
+ if (!pKey)
+ return REG_INVALID_KEY;
+ if (pKey->getRegistry() != pReg)
+ return REG_INVALID_KEY;
+ if (pKey->isDeleted())
return REG_INVALID_KEY;
- }
-
if (pKey->isReadOnly())
return REG_REGISTRY_READONLY;
if (keyName->length)
{
- if ((_ret = pKey->createKey(keyName, (RegKeyHandle*)&pNewKey) ))
+ ORegKey* pNewKey = 0;
+ RegError _ret = pKey->createKey(keyName, (RegKeyHandle*)&pNewKey);
+ if (_ret != REG_NO_ERROR)
return _ret;
- } else
- {
- pNewKey = pKey;
- }
-
- _ret = pKey->getRegistry()->loadKey(pNewKey, regFileName, bWarnings, bReport);
-
- if (_ret == REG_MERGE_ERROR ||
- (_ret == REG_MERGE_CONFLICT && bWarnings))
- {
- pKey->closeKey(pNewKey);
- return _ret;
- }
- /*
- if (_ret)
- {
- if (_ret == REG_MERGE_ERROR ||
- (_ret == REG_MERGE_CONFLICT && bWarnings))
+ _ret = pReg->loadKey(pNewKey, regFileName, bWarnings, bReport);
+ if (_ret == REG_MERGE_ERROR || (_ret == REG_MERGE_CONFLICT && bWarnings))
{
- pKey->closeKey(pNewKey);
- pKey->deleteKey(keyName);
- pKey->createKey(keyName, (RegKeyHandle*)&pNewKey);
- pReg->loadKey(pNewKey, tmpName, sal_False, sal_False);
+ if (pNewKey != pKey)
+ (void) pKey->closeKey(pNewKey);
+ else
+ (void) pKey->releaseKey(pNewKey);
+ return _ret;
}
- destroyRegistry(hReg, tmpName);
-
- pKey->closeKey(pNewKey);
- return _ret;
+ return (pNewKey != pKey) ? pKey->closeKey(pNewKey) : pKey->releaseKey(pNewKey);
}
- destroyRegistry(hReg, tmpName);
- */
- _ret = pKey->closeKey(pNewKey);
-
- if (_ret == REG_NO_ERROR )
- _ret = pReg->flush();
- return _ret;
+ return pReg->loadKey(pKey, regFileName, bWarnings, bReport);
}
-
//*********************************************************************
// dumpRegistry
//
static RegError REGISTRY_CALLTYPE dumpRegistry(RegHandle hReg,
RegKeyHandle hKey)
{
- ORegistry *pReg;
- ORegKey *pKey;
-
- if (hReg)
- {
- pReg = (ORegistry*)hReg;
- if (!pReg->isOpen())
- return REG_REGISTRY_NOT_OPEN;
- } else
- {
+ ORegistry* pReg = static_cast< ORegistry* >(hReg);
+ if (!pReg)
return REG_INVALID_REGISTRY;
- }
-
- if (hKey)
- {
- pKey = (ORegKey*)hKey;
+ if (!pReg->isOpen())
+ return REG_REGISTRY_NOT_OPEN;
- if (pKey->getRegistry() != pReg || pKey->isDeleted())
- return REG_INVALID_KEY;
- } else
- {
+ ORegKey* pKey = static_cast< ORegKey* >(hKey);
+ if (!pKey)
+ return REG_INVALID_KEY;
+ if (pKey->getRegistry() != pReg)
+ return REG_INVALID_KEY;
+ if (pKey->isDeleted())
return REG_INVALID_KEY;
- }
return pReg->dumpRegistry(hKey);
}
-
//*********************************************************************
// initRegistry_Api
//