INTEGRATION: CWS fwk77 (1.10.20); FILE MERGED

2007/10/29 06:32:38 mav 1.10.20.1: #i82994# integrate the patch
This commit is contained in:
Oliver Bolte 2008-01-04 15:32:03 +00:00
parent 6065ed7af9
commit 6d3c4980bc

View file

@ -4,9 +4,9 @@
*
* $RCSfile: stgdir.cxx,v $
*
* $Revision: 1.10 $
* $Revision: 1.11 $
*
* last change: $Author: ihi $ $Date: 2007-04-19 09:24:37 $
* last change: $Author: obo $ $Date: 2008-01-04 16:32:03 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@ -45,6 +45,7 @@
#include "stgdir.hxx"
#include "stgio.hxx"
//////////////////////////// class StgDirEntry /////////////////////////////
// This class holds the dir entry data and maintains dirty flags for both
@ -817,6 +818,7 @@ void StgDirStrm::SetupEntry( INT32 n, StgDirEntry* pUpper )
{
BOOL bOk(FALSE);
StgDirEntry* pCur = new StgDirEntry( p, &bOk );
if( !bOk )
{
delete pCur;
@ -833,9 +835,17 @@ void StgDirStrm::SetupEntry( INT32 n, StgDirEntry* pUpper )
INT32 nRight = pCur->aEntry.GetLeaf( STG_RIGHT );
// substorage?
INT32 nLeaf = STG_FREE;
if( pCur->aEntry.GetType() == STG_STORAGE
|| pCur->aEntry.GetType() == STG_ROOT )
if( pCur->aEntry.GetType() == STG_STORAGE || pCur->aEntry.GetType() == STG_ROOT )
{
nLeaf = pCur->aEntry.GetLeaf( STG_CHILD );
if (nLeaf != STG_FREE && nLeaf == n)
{
delete pCur;
rIo.SetError( SVSTREAM_GENERALERROR );
return;
}
}
if( nLeaf != 0 && nLeft != 0 && nRight != 0 )
{
if( StgAvlNode::Insert