Vincent Povirk : ole32: Reduce duplicated code in adjustPropertyChain.
Alexandre Julliard
julliard at winehq.org
Thu Oct 29 11:20:39 CDT 2009
Module: wine
Branch: master
Commit: a7e69339dcda3d3360f3b03bac5272f9c1c0176d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a7e69339dcda3d3360f3b03bac5272f9c1c0176d
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Tue Oct 27 16:48:39 2009 -0500
ole32: Reduce duplicated code in adjustPropertyChain.
Most of the work is the same regardless of relation type, so bring
those parts out of the relation type test.
---
dlls/ole32/storage32.c | 106 +++++++++--------------------------------------
1 files changed, 21 insertions(+), 85 deletions(-)
diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c
index fe74fb9..470dc83 100644
--- a/dlls/ole32/storage32.c
+++ b/dlls/ole32/storage32.c
@@ -2135,107 +2135,43 @@ static HRESULT adjustPropertyChain(
HRESULT hr = S_OK;
BOOL res = TRUE;
- if (typeOfRelation == PROPERTY_RELATION_PREVIOUS)
+ if (propertyToDelete.leftChild != PROPERTY_NULL)
{
- if (propertyToDelete.leftChild != PROPERTY_NULL)
- {
- /*
- * Set the parent previous to the property to delete previous
- */
- newLinkProperty = propertyToDelete.leftChild;
+ /*
+ * Replace the deleted entry with its left child
+ */
+ newLinkProperty = propertyToDelete.leftChild;
- if (propertyToDelete.rightChild != PROPERTY_NULL)
- {
- /*
- * We also need to find a storage for the other link, setup variables
- * to do this at the end...
- */
- needToFindAPlaceholder = TRUE;
- storeNode = propertyToDelete.leftChild;
- toStoreNode = propertyToDelete.rightChild;
- relationType = PROPERTY_RELATION_NEXT;
- }
- }
- else if (propertyToDelete.rightChild != PROPERTY_NULL)
+ if (propertyToDelete.rightChild != PROPERTY_NULL)
{
/*
- * Set the parent previous to the property to delete next
+ * We also need to find a place for the other link, setup variables
+ * to do this at the end...
*/
- newLinkProperty = propertyToDelete.rightChild;
+ needToFindAPlaceholder = TRUE;
+ storeNode = propertyToDelete.leftChild;
+ toStoreNode = propertyToDelete.rightChild;
+ relationType = PROPERTY_RELATION_NEXT;
}
-
+ }
+ else if (propertyToDelete.rightChild != PROPERTY_NULL)
+ {
/*
- * Link it for real...
+ * Replace the deleted entry with its right child
*/
- parentProperty.leftChild = newLinkProperty;
+ newLinkProperty = propertyToDelete.rightChild;
+ }
+ if (typeOfRelation == PROPERTY_RELATION_PREVIOUS)
+ {
+ parentProperty.leftChild = newLinkProperty;
}
else if (typeOfRelation == PROPERTY_RELATION_NEXT)
{
- if (propertyToDelete.leftChild != PROPERTY_NULL)
- {
- /*
- * Set the parent next to the property to delete next previous
- */
- newLinkProperty = propertyToDelete.leftChild;
-
- if (propertyToDelete.rightChild != PROPERTY_NULL)
- {
- /*
- * We also need to find a storage for the other link, setup variables
- * to do this at the end...
- */
- needToFindAPlaceholder = TRUE;
- storeNode = propertyToDelete.leftChild;
- toStoreNode = propertyToDelete.rightChild;
- relationType = PROPERTY_RELATION_NEXT;
- }
- }
- else if (propertyToDelete.rightChild != PROPERTY_NULL)
- {
- /*
- * Set the parent next to the property to delete next
- */
- newLinkProperty = propertyToDelete.rightChild;
- }
-
- /*
- * Link it for real...
- */
parentProperty.rightChild = newLinkProperty;
}
else /* (typeOfRelation == PROPERTY_RELATION_DIR) */
{
- if (propertyToDelete.leftChild != PROPERTY_NULL)
- {
- /*
- * Set the parent dir to the property to delete previous
- */
- newLinkProperty = propertyToDelete.leftChild;
-
- if (propertyToDelete.rightChild != PROPERTY_NULL)
- {
- /*
- * We also need to find a storage for the other link, setup variables
- * to do this at the end...
- */
- needToFindAPlaceholder = TRUE;
- storeNode = propertyToDelete.leftChild;
- toStoreNode = propertyToDelete.rightChild;
- relationType = PROPERTY_RELATION_NEXT;
- }
- }
- else if (propertyToDelete.rightChild != PROPERTY_NULL)
- {
- /*
- * Set the parent dir to the property to delete next
- */
- newLinkProperty = propertyToDelete.rightChild;
- }
-
- /*
- * Link it for real...
- */
parentProperty.dirProperty = newLinkProperty;
}
More information about the wine-cvs
mailing list