Commit 274a1d11 authored by Vincent Povirk's avatar Vincent Povirk Committed by Alexandre Julliard

ole32: Adjust updatePropertyChain signature and name to match removeFromTree.

parent bdbee82c
...@@ -187,10 +187,10 @@ static HRESULT destroyDirEntry( ...@@ -187,10 +187,10 @@ static HRESULT destroyDirEntry(
StorageImpl *storage, StorageImpl *storage,
ULONG index); ULONG index);
static void updatePropertyChain( static HRESULT insertIntoTree(
StorageBaseImpl *storage, StorageImpl *This,
ULONG newPropertyIndex, ULONG parentStorageIndex,
StgProperty newProperty); ULONG newPropertyIndex);
static LONG propertyNameCmp( static LONG propertyNameCmp(
const OLECHAR *newProperty, const OLECHAR *newProperty,
...@@ -768,10 +768,10 @@ static HRESULT WINAPI StorageBaseImpl_RenameElement( ...@@ -768,10 +768,10 @@ static HRESULT WINAPI StorageBaseImpl_RenameElement(
/* /*
* Find a spot in the property chain for our newly created property. * Find a spot in the property chain for our newly created property.
*/ */
updatePropertyChain( insertIntoTree(
This, This->ancestorStorage,
renamedPropertyIndex, This->rootPropertySetIndex,
renamedProperty); renamedPropertyIndex);
/* /*
* At this point the renamed property has been inserted in the tree, * At this point the renamed property has been inserted in the tree,
...@@ -948,10 +948,10 @@ static HRESULT WINAPI StorageBaseImpl_CreateStream( ...@@ -948,10 +948,10 @@ static HRESULT WINAPI StorageBaseImpl_CreateStream(
/* /*
* Find a spot in the property chain for our newly created property. * Find a spot in the property chain for our newly created property.
*/ */
updatePropertyChain( insertIntoTree(
This, This->ancestorStorage,
newPropertyIndex, This->rootPropertySetIndex,
newStreamProperty); newPropertyIndex);
/* /*
* Open the stream to return it. * Open the stream to return it.
...@@ -1131,10 +1131,10 @@ static HRESULT WINAPI StorageBaseImpl_CreateStorage( ...@@ -1131,10 +1131,10 @@ static HRESULT WINAPI StorageBaseImpl_CreateStorage(
/* /*
* Find a spot in the property chain for our newly created property. * Find a spot in the property chain for our newly created property.
*/ */
updatePropertyChain( insertIntoTree(
This, This->ancestorStorage,
newPropertyIndex, This->rootPropertySetIndex,
newProperty); newPropertyIndex);
/* /*
* Open it to get a pointer to return. * Open it to get a pointer to return.
...@@ -1316,18 +1316,26 @@ static LONG propertyNameCmp( ...@@ -1316,18 +1316,26 @@ static LONG propertyNameCmp(
* *
* Properly link this new element in the property chain. * Properly link this new element in the property chain.
*/ */
static void updatePropertyChain( static HRESULT insertIntoTree(
StorageBaseImpl *storage, StorageImpl *This,
ULONG newPropertyIndex, ULONG parentStorageIndex,
StgProperty newProperty) ULONG newPropertyIndex)
{ {
StgProperty currentProperty; StgProperty currentProperty;
StgProperty newProperty;
/*
* Read the inserted property
*/
StorageImpl_ReadProperty(This,
newPropertyIndex,
&newProperty);
/* /*
* Read the root property * Read the root property
*/ */
StorageImpl_ReadProperty(storage->ancestorStorage, StorageImpl_ReadProperty(This,
storage->rootPropertySetIndex, parentStorageIndex,
&currentProperty); &currentProperty);
if (currentProperty.dirProperty != PROPERTY_NULL) if (currentProperty.dirProperty != PROPERTY_NULL)
...@@ -1347,7 +1355,7 @@ static void updatePropertyChain( ...@@ -1347,7 +1355,7 @@ static void updatePropertyChain(
/* /*
* Read * Read
*/ */
StorageImpl_ReadProperty(storage->ancestorStorage, StorageImpl_ReadProperty(This,
currentProperty.dirProperty, currentProperty.dirProperty,
&currentProperty); &currentProperty);
...@@ -1363,7 +1371,7 @@ static void updatePropertyChain( ...@@ -1363,7 +1371,7 @@ static void updatePropertyChain(
{ {
if (previous != PROPERTY_NULL) if (previous != PROPERTY_NULL)
{ {
StorageImpl_ReadProperty(storage->ancestorStorage, StorageImpl_ReadProperty(This,
previous, previous,
&currentProperty); &currentProperty);
current = previous; current = previous;
...@@ -1371,7 +1379,7 @@ static void updatePropertyChain( ...@@ -1371,7 +1379,7 @@ static void updatePropertyChain(
else else
{ {
currentProperty.leftChild = newPropertyIndex; currentProperty.leftChild = newPropertyIndex;
StorageImpl_WriteProperty(storage->ancestorStorage, StorageImpl_WriteProperty(This,
current, current,
&currentProperty); &currentProperty);
found = 1; found = 1;
...@@ -1381,7 +1389,7 @@ static void updatePropertyChain( ...@@ -1381,7 +1389,7 @@ static void updatePropertyChain(
{ {
if (next != PROPERTY_NULL) if (next != PROPERTY_NULL)
{ {
StorageImpl_ReadProperty(storage->ancestorStorage, StorageImpl_ReadProperty(This,
next, next,
&currentProperty); &currentProperty);
current = next; current = next;
...@@ -1389,7 +1397,7 @@ static void updatePropertyChain( ...@@ -1389,7 +1397,7 @@ static void updatePropertyChain(
else else
{ {
currentProperty.rightChild = newPropertyIndex; currentProperty.rightChild = newPropertyIndex;
StorageImpl_WriteProperty(storage->ancestorStorage, StorageImpl_WriteProperty(This,
current, current,
&currentProperty); &currentProperty);
found = 1; found = 1;
...@@ -1401,7 +1409,7 @@ static void updatePropertyChain( ...@@ -1401,7 +1409,7 @@ static void updatePropertyChain(
* Trying to insert an item with the same name in the * Trying to insert an item with the same name in the
* subtree structure. * subtree structure.
*/ */
assert(FALSE); return STG_E_FILEALREADYEXISTS;
} }
previous = currentProperty.leftChild; previous = currentProperty.leftChild;
...@@ -1414,10 +1422,12 @@ static void updatePropertyChain( ...@@ -1414,10 +1422,12 @@ static void updatePropertyChain(
* The root storage is empty, link the new property to its dir property * The root storage is empty, link the new property to its dir property
*/ */
currentProperty.dirProperty = newPropertyIndex; currentProperty.dirProperty = newPropertyIndex;
StorageImpl_WriteProperty(storage->ancestorStorage, StorageImpl_WriteProperty(This,
storage->rootPropertySetIndex, parentStorageIndex,
&currentProperty); &currentProperty);
} }
return S_OK;
} }
/**************************************************************************** /****************************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment