Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
0567de24
Kaydet (Commit)
0567de24
authored
Eki 08, 2015
tarafından
Miklos Vajna
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
sot: prefix members of StgIo
Change-Id: Ibbe274514a145ab0b271100514bc3fea9f7076d5
üst
56bc686c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
91 additions
and
91 deletions
+91
-91
stg.cxx
sot/source/sdstor/stg.cxx
+12
-12
stgdir.cxx
sot/source/sdstor/stgdir.cxx
+5
-5
stgio.cxx
sot/source/sdstor/stgio.cxx
+53
-53
stgio.hxx
sot/source/sdstor/stgio.hxx
+6
-6
stgstrms.cxx
sot/source/sdstor/stgstrms.cxx
+15
-15
No files found.
sot/source/sdstor/stg.cxx
Dosyayı görüntüle @
0567de24
...
@@ -118,7 +118,7 @@ OLEStorageBase::~OLEStorageBase()
...
@@ -118,7 +118,7 @@ OLEStorageBase::~OLEStorageBase()
bool
OLEStorageBase
::
Validate_Impl
(
bool
bWrite
)
const
bool
OLEStorageBase
::
Validate_Impl
(
bool
bWrite
)
const
{
{
if
(
pIo
if
(
pIo
&&
pIo
->
pTOC
&&
pIo
->
m_
pTOC
&&
pEntry
&&
pEntry
&&
!
pEntry
->
m_bInvalid
&&
!
pEntry
->
m_bInvalid
&&
(
!
bWrite
||
!
pEntry
->
m_bDirect
||
(
nStreamMode
&
StreamMode
::
WRITE
)
)
)
&&
(
!
bWrite
||
!
pEntry
->
m_bDirect
||
(
nStreamMode
&
StreamMode
::
WRITE
)
)
)
...
@@ -469,9 +469,9 @@ void Storage::Init( bool bCreate )
...
@@ -469,9 +469,9 @@ void Storage::Init( bool bCreate )
// the file is empty
// the file is empty
if
(
!
bHdrLoaded
)
if
(
!
bHdrLoaded
)
pIo
->
Init
();
pIo
->
Init
();
if
(
pIo
->
Good
()
&&
pIo
->
pTOC
)
if
(
pIo
->
Good
()
&&
pIo
->
m_
pTOC
)
{
{
pEntry
=
pIo
->
pTOC
->
GetRoot
();
pEntry
=
pIo
->
m_
pTOC
->
GetRoot
();
pEntry
->
m_nRefCnt
++
;
pEntry
->
m_nRefCnt
++
;
}
}
}
}
...
@@ -560,7 +560,7 @@ BaseStorage* Storage::OpenStorage( const OUString& rName, StreamMode m, bool bDi
...
@@ -560,7 +560,7 @@ BaseStorage* Storage::OpenStorage( const OUString& rName, StreamMode m, bool bDi
if
(
bDirect
&&
!
pEntry
->
m_bDirect
)
if
(
bDirect
&&
!
pEntry
->
m_bDirect
)
bDirect
=
false
;
bDirect
=
false
;
StgDirEntry
*
p
=
pIo
->
pTOC
->
Find
(
*
pEntry
,
rName
);
StgDirEntry
*
p
=
pIo
->
m_
pTOC
->
Find
(
*
pEntry
,
rName
);
if
(
!
p
)
if
(
!
p
)
{
{
if
(
!
(
m
&
StreamMode
::
NOCREATE
)
)
if
(
!
(
m
&
StreamMode
::
NOCREATE
)
)
...
@@ -573,7 +573,7 @@ BaseStorage* Storage::OpenStorage( const OUString& rName, StreamMode m, bool bDi
...
@@ -573,7 +573,7 @@ BaseStorage* Storage::OpenStorage( const OUString& rName, StreamMode m, bool bDi
aNewName
=
"Temp Stg "
+
OUString
::
number
(
++
nTmpCount
);
aNewName
=
"Temp Stg "
+
OUString
::
number
(
++
nTmpCount
);
bTemp
=
true
;
bTemp
=
true
;
}
}
p
=
pIo
->
pTOC
->
Create
(
*
pEntry
,
aNewName
,
STG_STORAGE
);
p
=
pIo
->
m_
pTOC
->
Create
(
*
pEntry
,
aNewName
,
STG_STORAGE
);
if
(
p
)
if
(
p
)
p
->
m_bTemp
=
bTemp
;
p
->
m_bTemp
=
bTemp
;
}
}
...
@@ -614,7 +614,7 @@ BaseStorageStream* Storage::OpenStream( const OUString& rName, StreamMode m, boo
...
@@ -614,7 +614,7 @@ BaseStorageStream* Storage::OpenStream( const OUString& rName, StreamMode m, boo
if
(
!
Validate
()
||
!
ValidateMode
(
m
)
)
if
(
!
Validate
()
||
!
ValidateMode
(
m
)
)
return
new
StorageStream
(
pIo
,
NULL
,
m
);
return
new
StorageStream
(
pIo
,
NULL
,
m
);
StgDirEntry
*
p
=
pIo
->
pTOC
->
Find
(
*
pEntry
,
rName
);
StgDirEntry
*
p
=
pIo
->
m_
pTOC
->
Find
(
*
pEntry
,
rName
);
bool
bTemp
=
false
;
bool
bTemp
=
false
;
if
(
!
p
)
if
(
!
p
)
{
{
...
@@ -628,7 +628,7 @@ BaseStorageStream* Storage::OpenStream( const OUString& rName, StreamMode m, boo
...
@@ -628,7 +628,7 @@ BaseStorageStream* Storage::OpenStream( const OUString& rName, StreamMode m, boo
aNewName
=
"Temp Strm "
+
OUString
::
number
(
++
nTmpCount
);
aNewName
=
"Temp Strm "
+
OUString
::
number
(
++
nTmpCount
);
bTemp
=
true
;
bTemp
=
true
;
}
}
p
=
pIo
->
pTOC
->
Create
(
*
pEntry
,
aNewName
,
STG_STREAM
);
p
=
pIo
->
m_
pTOC
->
Create
(
*
pEntry
,
aNewName
,
STG_STREAM
);
}
}
if
(
!
p
)
if
(
!
p
)
pIo
->
SetError
(
(
m
&
StreamMode
::
WRITE
)
pIo
->
SetError
(
(
m
&
StreamMode
::
WRITE
)
...
@@ -659,7 +659,7 @@ bool Storage::Remove( const OUString& rName )
...
@@ -659,7 +659,7 @@ bool Storage::Remove( const OUString& rName )
{
{
if
(
!
Validate
(
true
)
)
if
(
!
Validate
(
true
)
)
return
false
;
return
false
;
StgDirEntry
*
p
=
pIo
->
pTOC
->
Find
(
*
pEntry
,
rName
);
StgDirEntry
*
p
=
pIo
->
m_
pTOC
->
Find
(
*
pEntry
,
rName
);
if
(
p
)
if
(
p
)
{
{
p
->
Invalidate
(
true
);
p
->
Invalidate
(
true
);
...
@@ -678,7 +678,7 @@ bool Storage::CopyTo( const OUString& rElem, BaseStorage* pDest, const OUString&
...
@@ -678,7 +678,7 @@ bool Storage::CopyTo( const OUString& rElem, BaseStorage* pDest, const OUString&
{
{
if
(
!
Validate
()
||
!
pDest
||
!
pDest
->
Validate
(
true
)
)
if
(
!
Validate
()
||
!
pDest
||
!
pDest
->
Validate
(
true
)
)
return
false
;
return
false
;
StgDirEntry
*
pElem
=
pIo
->
pTOC
->
Find
(
*
pEntry
,
rElem
);
StgDirEntry
*
pElem
=
pIo
->
m_
pTOC
->
Find
(
*
pEntry
,
rElem
);
if
(
pElem
)
if
(
pElem
)
{
{
if
(
pElem
->
m_aEntry
.
GetType
()
==
STG_STORAGE
)
if
(
pElem
->
m_aEntry
.
GetType
()
==
STG_STORAGE
)
...
@@ -770,7 +770,7 @@ bool Storage::IsStorage( const OUString& rName ) const
...
@@ -770,7 +770,7 @@ bool Storage::IsStorage( const OUString& rName ) const
{
{
if
(
Validate
()
)
if
(
Validate
()
)
{
{
StgDirEntry
*
p
=
pIo
->
pTOC
->
Find
(
*
pEntry
,
rName
);
StgDirEntry
*
p
=
pIo
->
m_
pTOC
->
Find
(
*
pEntry
,
rName
);
if
(
p
)
if
(
p
)
return
p
->
m_aEntry
.
GetType
()
==
STG_STORAGE
;
return
p
->
m_aEntry
.
GetType
()
==
STG_STORAGE
;
}
}
...
@@ -781,7 +781,7 @@ bool Storage::IsStream( const OUString& rName ) const
...
@@ -781,7 +781,7 @@ bool Storage::IsStream( const OUString& rName ) const
{
{
if
(
Validate
()
)
if
(
Validate
()
)
{
{
StgDirEntry
*
p
=
pIo
->
pTOC
->
Find
(
*
pEntry
,
rName
);
StgDirEntry
*
p
=
pIo
->
m_
pTOC
->
Find
(
*
pEntry
,
rName
);
if
(
p
)
if
(
p
)
return
p
->
m_aEntry
.
GetType
()
==
STG_STREAM
;
return
p
->
m_aEntry
.
GetType
()
==
STG_STREAM
;
}
}
...
@@ -791,7 +791,7 @@ bool Storage::IsStream( const OUString& rName ) const
...
@@ -791,7 +791,7 @@ bool Storage::IsStream( const OUString& rName ) const
bool
Storage
::
IsContained
(
const
OUString
&
rName
)
const
bool
Storage
::
IsContained
(
const
OUString
&
rName
)
const
{
{
if
(
Validate
()
)
if
(
Validate
()
)
return
pIo
->
pTOC
->
Find
(
*
pEntry
,
rName
)
!=
NULL
;
return
pIo
->
m_
pTOC
->
Find
(
*
pEntry
,
rName
)
!=
NULL
;
else
else
return
false
;
return
false
;
}
}
...
...
sot/source/sdstor/stgdir.cxx
Dosyayı görüntüle @
0567de24
...
@@ -262,7 +262,7 @@ bool StgDirEntry::IsDirty()
...
@@ -262,7 +262,7 @@ bool StgDirEntry::IsDirty()
void
StgDirEntry
::
OpenStream
(
StgIo
&
rIo
,
bool
bForceBig
)
void
StgDirEntry
::
OpenStream
(
StgIo
&
rIo
,
bool
bForceBig
)
{
{
sal_Int32
nThreshold
=
(
sal_uInt16
)
rIo
.
aHdr
.
GetThreshold
();
sal_Int32
nThreshold
=
(
sal_uInt16
)
rIo
.
m_
aHdr
.
GetThreshold
();
delete
m_pStgStrm
;
delete
m_pStgStrm
;
if
(
!
bForceBig
&&
m_aEntry
.
GetSize
()
<
nThreshold
)
if
(
!
bForceBig
&&
m_aEntry
.
GetSize
()
<
nThreshold
)
m_pStgStrm
=
new
StgSmallStrm
(
rIo
,
*
this
);
m_pStgStrm
=
new
StgSmallStrm
(
rIo
,
*
this
);
...
@@ -331,7 +331,7 @@ bool StgDirEntry::SetSize( sal_Int32 nNewSize )
...
@@ -331,7 +331,7 @@ bool StgDirEntry::SetSize( sal_Int32 nNewSize )
bool
bRes
=
false
;
bool
bRes
=
false
;
StgIo
&
rIo
=
m_pStgStrm
->
GetIo
();
StgIo
&
rIo
=
m_pStgStrm
->
GetIo
();
sal_Int32
nThreshold
=
rIo
.
aHdr
.
GetThreshold
();
sal_Int32
nThreshold
=
rIo
.
m_
aHdr
.
GetThreshold
();
// ensure the correct storage stream!
// ensure the correct storage stream!
StgStrm
*
pOld
=
NULL
;
StgStrm
*
pOld
=
NULL
;
sal_uInt16
nOldSize
=
0
;
sal_uInt16
nOldSize
=
0
;
...
@@ -625,7 +625,7 @@ bool StgDirEntry::Tmp2Strm()
...
@@ -625,7 +625,7 @@ bool StgDirEntry::Tmp2Strm()
sal_uLong
n
=
m_pTmpStrm
->
GetSize
();
sal_uLong
n
=
m_pTmpStrm
->
GetSize
();
StgStrm
*
pNewStrm
;
StgStrm
*
pNewStrm
;
StgIo
&
rIo
=
m_pStgStrm
->
GetIo
();
StgIo
&
rIo
=
m_pStgStrm
->
GetIo
();
sal_uLong
nThreshold
=
(
sal_uLong
)
rIo
.
aHdr
.
GetThreshold
();
sal_uLong
nThreshold
=
(
sal_uLong
)
rIo
.
m_
aHdr
.
GetThreshold
();
if
(
n
<
nThreshold
)
if
(
n
<
nThreshold
)
pNewStrm
=
new
StgSmallStrm
(
rIo
,
STG_EOF
,
0
);
pNewStrm
=
new
StgSmallStrm
(
rIo
,
STG_EOF
,
0
);
else
else
...
@@ -719,7 +719,7 @@ void StgDirEntry::Invalidate( bool bDel )
...
@@ -719,7 +719,7 @@ void StgDirEntry::Invalidate( bool bDel )
// This specialized stream is the maintenance stream for the directory tree.
// This specialized stream is the maintenance stream for the directory tree.
StgDirStrm
::
StgDirStrm
(
StgIo
&
r
)
StgDirStrm
::
StgDirStrm
(
StgIo
&
r
)
:
StgDataStrm
(
r
,
r
.
aHdr
.
GetTOCStart
(),
-
1
)
:
StgDataStrm
(
r
,
r
.
m_
aHdr
.
GetTOCStart
(),
-
1
)
,
pRoot
(
NULL
)
,
pRoot
(
NULL
)
,
nEntries
(
0
)
,
nEntries
(
0
)
{
{
...
@@ -907,7 +907,7 @@ bool StgDirStrm::Store()
...
@@ -907,7 +907,7 @@ bool StgDirStrm::Store()
}
}
// Now we can release the old stream
// Now we can release the old stream
pFat
->
FreePages
(
nOldStart
,
true
);
pFat
->
FreePages
(
nOldStart
,
true
);
rIo
.
aHdr
.
SetTOCStart
(
nStart
);
rIo
.
m_
aHdr
.
SetTOCStart
(
nStart
);
return
true
;
return
true
;
}
}
...
...
sot/source/sdstor/stgio.cxx
Dosyayı görüntüle @
0567de24
...
@@ -32,19 +32,19 @@
...
@@ -32,19 +32,19 @@
StgIo
::
StgIo
()
:
StgCache
()
StgIo
::
StgIo
()
:
StgCache
()
{
{
pTOC
=
NULL
;
m_
pTOC
=
NULL
;
pDataFAT
=
NULL
;
m_
pDataFAT
=
NULL
;
pDataStrm
=
NULL
;
m_
pDataStrm
=
NULL
;
pFAT
=
NULL
;
m_
pFAT
=
NULL
;
bCopied
=
false
;
m_
bCopied
=
false
;
}
}
StgIo
::~
StgIo
()
StgIo
::~
StgIo
()
{
{
delete
pTOC
;
delete
m_
pTOC
;
delete
pDataFAT
;
delete
m_
pDataFAT
;
delete
pDataStrm
;
delete
m_
pDataStrm
;
delete
pFAT
;
delete
m_
pFAT
;
}
}
// Load the header. Do not set an error code if the header is invalid.
// Load the header. Do not set an error code if the header is invalid.
...
@@ -53,9 +53,9 @@ bool StgIo::Load()
...
@@ -53,9 +53,9 @@ bool StgIo::Load()
{
{
if
(
m_pStrm
)
if
(
m_pStrm
)
{
{
if
(
aHdr
.
Load
(
*
this
)
)
if
(
m_
aHdr
.
Load
(
*
this
)
)
{
{
if
(
aHdr
.
Check
()
)
if
(
m_
aHdr
.
Check
()
)
SetupStreams
();
SetupStreams
();
else
else
return
false
;
return
false
;
...
@@ -70,35 +70,35 @@ bool StgIo::Load()
...
@@ -70,35 +70,35 @@ bool StgIo::Load()
bool
StgIo
::
Init
()
bool
StgIo
::
Init
()
{
{
aHdr
.
Init
();
m_
aHdr
.
Init
();
SetupStreams
();
SetupStreams
();
return
CommitAll
();
return
CommitAll
();
}
}
void
StgIo
::
SetupStreams
()
void
StgIo
::
SetupStreams
()
{
{
delete
pTOC
;
delete
m_
pTOC
;
delete
pDataFAT
;
delete
m_
pDataFAT
;
delete
pDataStrm
;
delete
m_
pDataStrm
;
delete
pFAT
;
delete
m_
pFAT
;
pTOC
=
NULL
;
m_
pTOC
=
NULL
;
pDataFAT
=
NULL
;
m_
pDataFAT
=
NULL
;
pDataStrm
=
NULL
;
m_
pDataStrm
=
NULL
;
pFAT
=
NULL
;
m_
pFAT
=
NULL
;
ResetError
();
ResetError
();
SetPhysPageSize
(
1
<<
aHdr
.
GetPageSize
()
);
SetPhysPageSize
(
1
<<
m_
aHdr
.
GetPageSize
()
);
pFAT
=
new
StgFATStrm
(
*
this
);
m_
pFAT
=
new
StgFATStrm
(
*
this
);
pTOC
=
new
StgDirStrm
(
*
this
);
m_
pTOC
=
new
StgDirStrm
(
*
this
);
if
(
!
GetError
()
)
if
(
!
GetError
()
)
{
{
StgDirEntry
*
pRoot
=
pTOC
->
GetRoot
();
StgDirEntry
*
pRoot
=
m_
pTOC
->
GetRoot
();
if
(
pRoot
)
if
(
pRoot
)
{
{
pDataFAT
=
new
StgDataStrm
(
*
this
,
aHdr
.
GetDataFATStart
(),
-
1
);
m_pDataFAT
=
new
StgDataStrm
(
*
this
,
m_
aHdr
.
GetDataFATStart
(),
-
1
);
pDataStrm
=
new
StgDataStrm
(
*
this
,
*
pRoot
);
m_
pDataStrm
=
new
StgDataStrm
(
*
this
,
*
pRoot
);
pDataFAT
->
SetIncrement
(
1
<<
aHdr
.
GetPageSize
()
);
m_pDataFAT
->
SetIncrement
(
1
<<
m_
aHdr
.
GetPageSize
()
);
pDataStrm
->
SetIncrement
(
GetDataPageSize
()
);
m_
pDataStrm
->
SetIncrement
(
GetDataPageSize
()
);
pDataStrm
->
SetEntry
(
*
pRoot
);
m_
pDataStrm
->
SetEntry
(
*
pRoot
);
}
}
else
else
SetError
(
SVSTREAM_FILEFORMAT_ERROR
);
SetError
(
SVSTREAM_FILEFORMAT_ERROR
);
...
@@ -109,7 +109,7 @@ void StgIo::SetupStreams()
...
@@ -109,7 +109,7 @@ void StgIo::SetupStreams()
short
StgIo
::
GetDataPageSize
()
short
StgIo
::
GetDataPageSize
()
{
{
return
1
<<
aHdr
.
GetDataPageSize
();
return
1
<<
m_
aHdr
.
GetDataPageSize
();
}
}
// Commit everything
// Commit everything
...
@@ -117,14 +117,14 @@ short StgIo::GetDataPageSize()
...
@@ -117,14 +117,14 @@ short StgIo::GetDataPageSize()
bool
StgIo
::
CommitAll
()
bool
StgIo
::
CommitAll
()
{
{
// Store the data (all streams and the TOC)
// Store the data (all streams and the TOC)
if
(
pTOC
&&
pTOC
->
Store
()
&&
pDataFAT
)
if
(
m_pTOC
&&
m_pTOC
->
Store
()
&&
m_
pDataFAT
)
{
{
if
(
Commit
()
)
if
(
Commit
()
)
{
{
aHdr
.
SetDataFATStart
(
pDataFAT
->
GetStart
()
);
m_aHdr
.
SetDataFATStart
(
m_
pDataFAT
->
GetStart
()
);
aHdr
.
SetDataFATSize
(
pDataFAT
->
GetPages
()
);
m_aHdr
.
SetDataFATSize
(
m_
pDataFAT
->
GetPages
()
);
aHdr
.
SetTOCStart
(
pTOC
->
GetStart
()
);
m_aHdr
.
SetTOCStart
(
m_
pTOC
->
GetStart
()
);
if
(
aHdr
.
Store
(
*
this
)
)
if
(
m_
aHdr
.
Store
(
*
this
)
)
{
{
m_pStrm
->
Flush
();
m_pStrm
->
Flush
();
sal_uLong
n
=
m_pStrm
->
GetError
();
sal_uLong
n
=
m_pStrm
->
GetError
();
...
@@ -166,7 +166,7 @@ EasyFat::EasyFat( StgIo& rIo, StgStrm* pFatStream, sal_Int32 nPSize )
...
@@ -166,7 +166,7 @@ EasyFat::EasyFat( StgIo& rIo, StgStrm* pFatStream, sal_Int32 nPSize )
pFree
=
new
bool
[
nPages
];
pFree
=
new
bool
[
nPages
];
rtl
::
Reference
<
StgPage
>
pPage
;
rtl
::
Reference
<
StgPage
>
pPage
;
sal_Int32
nFatPageSize
=
(
1
<<
rIo
.
aHdr
.
GetPageSize
())
-
2
;
sal_Int32
nFatPageSize
=
(
1
<<
rIo
.
m_
aHdr
.
GetPageSize
())
-
2
;
for
(
sal_Int32
nPage
=
0
;
nPage
<
nPages
;
nPage
++
)
for
(
sal_Int32
nPage
=
0
;
nPage
<
nPages
;
nPage
++
)
{
{
...
@@ -239,8 +239,8 @@ public:
...
@@ -239,8 +239,8 @@ public:
};
};
Validator
::
Validator
(
StgIo
&
rIoP
)
Validator
::
Validator
(
StgIo
&
rIoP
)
:
aSmallFat
(
rIoP
,
rIoP
.
pDataFAT
,
1
<<
rIoP
.
aHdr
.
GetDataPageSize
()
),
:
aSmallFat
(
rIoP
,
rIoP
.
m_pDataFAT
,
1
<<
rIoP
.
m_
aHdr
.
GetDataPageSize
()
),
aFat
(
rIoP
,
rIoP
.
pFAT
,
1
<<
rIoP
.
aHdr
.
GetPageSize
()
),
aFat
(
rIoP
,
rIoP
.
m_pFAT
,
1
<<
rIoP
.
m_
aHdr
.
GetPageSize
()
),
rIo
(
rIoP
)
rIo
(
rIoP
)
{
{
sal_uLong
nErr
=
nError
=
FAT_OK
;
sal_uLong
nErr
=
nError
=
FAT_OK
;
...
@@ -255,18 +255,18 @@ Validator::Validator( StgIo &rIoP )
...
@@ -255,18 +255,18 @@ Validator::Validator( StgIo &rIoP )
sal_uLong
Validator
::
ValidateMasterFATs
()
sal_uLong
Validator
::
ValidateMasterFATs
()
{
{
sal_Int32
nCount
=
rIo
.
aHdr
.
GetFATSize
();
sal_Int32
nCount
=
rIo
.
m_
aHdr
.
GetFATSize
();
sal_uLong
nErr
;
sal_uLong
nErr
;
if
(
!
rIo
.
pFAT
)
if
(
!
rIo
.
m_
pFAT
)
return
FAT_INMEMORYERROR
;
return
FAT_INMEMORYERROR
;
for
(
sal_Int32
i
=
0
;
i
<
nCount
;
i
++
)
for
(
sal_Int32
i
=
0
;
i
<
nCount
;
i
++
)
{
{
if
(
(
nErr
=
aFat
.
Mark
(
rIo
.
pFAT
->
GetPage
(
short
(
i
),
false
),
aFat
.
GetPageSize
(),
-
3
))
!=
FAT_OK
)
if
(
(
nErr
=
aFat
.
Mark
(
rIo
.
m_
pFAT
->
GetPage
(
short
(
i
),
false
),
aFat
.
GetPageSize
(),
-
3
))
!=
FAT_OK
)
return
nErr
;
return
nErr
;
}
}
if
(
rIo
.
aHdr
.
GetMasters
()
)
if
(
rIo
.
m_
aHdr
.
GetMasters
()
)
if
(
(
nErr
=
aFat
.
Mark
(
rIo
.
aHdr
.
GetFATChain
(
),
aFat
.
GetPageSize
(),
-
4
))
!=
FAT_OK
)
if
(
(
nErr
=
aFat
.
Mark
(
rIo
.
m_
aHdr
.
GetFATChain
(
),
aFat
.
GetPageSize
(),
-
4
))
!=
FAT_OK
)
return
nErr
;
return
nErr
;
return
FAT_OK
;
return
FAT_OK
;
...
@@ -290,7 +290,7 @@ sal_uLong Validator::MarkAll( StgDirEntry *pEntry )
...
@@ -290,7 +290,7 @@ sal_uLong Validator::MarkAll( StgDirEntry *pEntry )
else
else
{
{
sal_Int32
nSize
=
p
->
m_aEntry
.
GetSize
();
sal_Int32
nSize
=
p
->
m_aEntry
.
GetSize
();
if
(
nSize
<
rIo
.
aHdr
.
GetThreshold
()
)
if
(
nSize
<
rIo
.
m_
aHdr
.
GetThreshold
()
)
nErr
=
aSmallFat
.
Mark
(
p
->
m_aEntry
.
GetStartPage
(),
nSize
,
-
2
);
nErr
=
aSmallFat
.
Mark
(
p
->
m_aEntry
.
GetStartPage
(),
nSize
,
-
2
);
else
else
nErr
=
aFat
.
Mark
(
p
->
m_aEntry
.
GetStartPage
(),
nSize
,
-
2
);
nErr
=
aFat
.
Mark
(
p
->
m_aEntry
.
GetStartPage
(),
nSize
,
-
2
);
...
@@ -303,27 +303,27 @@ sal_uLong Validator::MarkAll( StgDirEntry *pEntry )
...
@@ -303,27 +303,27 @@ sal_uLong Validator::MarkAll( StgDirEntry *pEntry )
sal_uLong
Validator
::
ValidateDirectoryEntries
()
sal_uLong
Validator
::
ValidateDirectoryEntries
()
{
{
if
(
!
rIo
.
pTOC
)
if
(
!
rIo
.
m_
pTOC
)
return
FAT_INMEMORYERROR
;
return
FAT_INMEMORYERROR
;
// Normale DirEntries
// Normale DirEntries
sal_uLong
nErr
=
MarkAll
(
rIo
.
pTOC
->
GetRoot
()
);
sal_uLong
nErr
=
MarkAll
(
rIo
.
m_
pTOC
->
GetRoot
()
);
if
(
nErr
!=
FAT_OK
)
if
(
nErr
!=
FAT_OK
)
return
nErr
;
return
nErr
;
// Small Data
// Small Data
nErr
=
aFat
.
Mark
(
rIo
.
pTOC
->
GetRoot
()
->
m_aEntry
.
GetStartPage
(),
nErr
=
aFat
.
Mark
(
rIo
.
m_
pTOC
->
GetRoot
()
->
m_aEntry
.
GetStartPage
(),
rIo
.
pTOC
->
GetRoot
()
->
m_aEntry
.
GetSize
(),
-
2
);
rIo
.
m_
pTOC
->
GetRoot
()
->
m_aEntry
.
GetSize
(),
-
2
);
if
(
nErr
!=
FAT_OK
)
if
(
nErr
!=
FAT_OK
)
return
nErr
;
return
nErr
;
// Small Data FAT
// Small Data FAT
nErr
=
aFat
.
Mark
(
nErr
=
aFat
.
Mark
(
rIo
.
aHdr
.
GetDataFATStart
(),
rIo
.
m_
aHdr
.
GetDataFATStart
(),
rIo
.
aHdr
.
GetDataFATSize
()
*
aFat
.
GetPageSize
(),
-
2
);
rIo
.
m_
aHdr
.
GetDataFATSize
()
*
aFat
.
GetPageSize
(),
-
2
);
if
(
nErr
!=
FAT_OK
)
if
(
nErr
!=
FAT_OK
)
return
nErr
;
return
nErr
;
// TOC
// TOC
nErr
=
aFat
.
Mark
(
nErr
=
aFat
.
Mark
(
rIo
.
aHdr
.
GetTOCStart
(),
-
1
,
-
2
);
rIo
.
m_
aHdr
.
GetTOCStart
(),
-
1
,
-
2
);
return
nErr
;
return
nErr
;
}
}
...
@@ -374,13 +374,13 @@ sal_uLong StgIo::ValidateFATs()
...
@@ -374,13 +374,13 @@ sal_uLong StgIo::ValidateFATs()
if
(
bRet1
!=
bRet2
)
if
(
bRet1
!=
bRet2
)
nErr
=
bRet1
?
FAT_ONFILEERROR
:
FAT_INMEMORYERROR
;
nErr
=
bRet1
?
FAT_ONFILEERROR
:
FAT_INMEMORYERROR
;
else
nErr
=
bRet1
?
FAT_OK
:
FAT_BOTHERROR
;
else
nErr
=
bRet1
?
FAT_OK
:
FAT_BOTHERROR
;
if
(
nErr
!=
FAT_OK
&&
!
bCopied
)
if
(
nErr
!=
FAT_OK
&&
!
m_
bCopied
)
{
{
StgLinkArg
aArg
;
StgLinkArg
aArg
;
aArg
.
aFile
=
pFileStrm
->
GetFileName
();
aArg
.
aFile
=
pFileStrm
->
GetFileName
();
aArg
.
nErr
=
nErr
;
aArg
.
nErr
=
nErr
;
ErrorLink
::
get
().
Call
(
aArg
);
ErrorLink
::
get
().
Call
(
aArg
);
bCopied
=
true
;
m_
bCopied
=
true
;
}
}
// DBG_ASSERT( nErr == FAT_OK ,"Storage kaputt");
// DBG_ASSERT( nErr == FAT_OK ,"Storage kaputt");
return
nErr
;
return
nErr
;
...
...
sot/source/sdstor/stgio.hxx
Dosyayı görüntüle @
0567de24
...
@@ -50,15 +50,15 @@ struct StgLinkArg
...
@@ -50,15 +50,15 @@ struct StgLinkArg
class
StgIo
:
public
StgCache
{
class
StgIo
:
public
StgCache
{
void
SetupStreams
();
// load all internal streams
void
SetupStreams
();
// load all internal streams
bool
bCopied
;
bool
m_
bCopied
;
public
:
public
:
StgIo
();
StgIo
();
~
StgIo
();
~
StgIo
();
StgHeader
aHdr
;
// storage file header
StgHeader
m_
aHdr
;
// storage file header
StgFATStrm
*
pFAT
;
// FAT stream
StgFATStrm
*
m_
pFAT
;
// FAT stream
StgDirStrm
*
pTOC
;
// TOC stream
StgDirStrm
*
m_
pTOC
;
// TOC stream
StgDataStrm
*
pDataFAT
;
// small data FAT stream
StgDataStrm
*
m_
pDataFAT
;
// small data FAT stream
StgDataStrm
*
pDataStrm
;
// small data stream
StgDataStrm
*
m_
pDataStrm
;
// small data stream
short
GetDataPageSize
();
// get the logical data page size
short
GetDataPageSize
();
// get the logical data page size
bool
Load
();
// load a storage file
bool
Load
();
// load a storage file
bool
Init
();
// set up an empty file
bool
Init
();
// set up an empty file
...
...
sot/source/sdstor/stgstrms.cxx
Dosyayı görüntüle @
0567de24
...
@@ -546,7 +546,7 @@ bool StgStrm::SetSize( sal_Int32 nBytes )
...
@@ -546,7 +546,7 @@ bool StgStrm::SetSize( sal_Int32 nBytes )
StgFATStrm
::
StgFATStrm
(
StgIo
&
r
)
:
StgStrm
(
r
)
StgFATStrm
::
StgFATStrm
(
StgIo
&
r
)
:
StgStrm
(
r
)
{
{
pFat
=
new
StgFAT
(
*
this
,
true
);
pFat
=
new
StgFAT
(
*
this
,
true
);
nSize
=
rIo
.
aHdr
.
GetFATSize
()
*
nPageSize
;
nSize
=
rIo
.
m_
aHdr
.
GetFATSize
()
*
nPageSize
;
}
}
bool
StgFATStrm
::
Pos2Page
(
sal_Int32
nBytePos
)
bool
StgFATStrm
::
Pos2Page
(
sal_Int32
nBytePos
)
...
@@ -568,7 +568,7 @@ sal_Int32 StgFATStrm::GetPage( short nOff, bool bMake, sal_uInt16 *pnMasterAlloc
...
@@ -568,7 +568,7 @@ sal_Int32 StgFATStrm::GetPage( short nOff, bool bMake, sal_uInt16 *pnMasterAlloc
OSL_ENSURE
(
nOff
>=
0
,
"The offset may not be negative!"
);
OSL_ENSURE
(
nOff
>=
0
,
"The offset may not be negative!"
);
if
(
pnMasterAlloc
)
*
pnMasterAlloc
=
0
;
if
(
pnMasterAlloc
)
*
pnMasterAlloc
=
0
;
if
(
nOff
<
StgHeader
::
GetFAT1Size
()
)
if
(
nOff
<
StgHeader
::
GetFAT1Size
()
)
return
rIo
.
aHdr
.
GetFATPage
(
nOff
);
return
rIo
.
m_
aHdr
.
GetFATPage
(
nOff
);
sal_Int32
nMaxPage
=
nSize
>>
2
;
sal_Int32
nMaxPage
=
nSize
>>
2
;
nOff
=
nOff
-
StgHeader
::
GetFAT1Size
();
nOff
=
nOff
-
StgHeader
::
GetFAT1Size
();
// Anzahl der Masterpages, durch die wir iterieren muessen
// Anzahl der Masterpages, durch die wir iterieren muessen
...
@@ -579,7 +579,7 @@ sal_Int32 StgFATStrm::GetPage( short nOff, bool bMake, sal_uInt16 *pnMasterAlloc
...
@@ -579,7 +579,7 @@ sal_Int32 StgFATStrm::GetPage( short nOff, bool bMake, sal_uInt16 *pnMasterAlloc
rtl
::
Reference
<
StgPage
>
pOldPage
;
rtl
::
Reference
<
StgPage
>
pOldPage
;
rtl
::
Reference
<
StgPage
>
pMaster
;
rtl
::
Reference
<
StgPage
>
pMaster
;
sal_Int32
nFAT
=
rIo
.
aHdr
.
GetFATChain
();
sal_Int32
nFAT
=
rIo
.
m_
aHdr
.
GetFATChain
();
for
(
sal_uInt16
nCount
=
0
;
nCount
<=
nBlocks
;
nCount
++
)
for
(
sal_uInt16
nCount
=
0
;
nCount
<=
nBlocks
;
nCount
++
)
{
{
if
(
nFAT
==
STG_EOF
||
nFAT
==
STG_FREE
)
if
(
nFAT
==
STG_EOF
||
nFAT
==
STG_FREE
)
...
@@ -597,7 +597,7 @@ sal_Int32 StgFATStrm::GetPage( short nOff, bool bMake, sal_uInt16 *pnMasterAlloc
...
@@ -597,7 +597,7 @@ sal_Int32 StgFATStrm::GetPage( short nOff, bool bMake, sal_uInt16 *pnMasterAlloc
rIo
.
SetToPage
(
pMaster
,
k
,
STG_FREE
);
rIo
.
SetToPage
(
pMaster
,
k
,
STG_FREE
);
// Verkettung herstellen
// Verkettung herstellen
if
(
!
pOldPage
.
is
()
)
if
(
!
pOldPage
.
is
()
)
rIo
.
aHdr
.
SetFATChain
(
nFAT
);
rIo
.
m_
aHdr
.
SetFATChain
(
nFAT
);
else
else
rIo
.
SetToPage
(
pOldPage
,
nMasterCount
,
nFAT
);
rIo
.
SetToPage
(
pOldPage
,
nMasterCount
,
nFAT
);
if
(
nMaxPage
>=
rIo
.
GetPhysPages
()
)
if
(
nMaxPage
>=
rIo
.
GetPhysPages
()
)
...
@@ -616,7 +616,7 @@ sal_Int32 StgFATStrm::GetPage( short nOff, bool bMake, sal_uInt16 *pnMasterAlloc
...
@@ -616,7 +616,7 @@ sal_Int32 StgFATStrm::GetPage( short nOff, bool bMake, sal_uInt16 *pnMasterAlloc
}
}
else
else
(
*
pnMasterAlloc
)
++
;
(
*
pnMasterAlloc
)
++
;
rIo
.
aHdr
.
SetMasters
(
nCount
+
1
);
rIo
.
m_
aHdr
.
SetMasters
(
nCount
+
1
);
pOldPage
=
pMaster
;
pOldPage
=
pMaster
;
}
}
}
}
...
@@ -647,7 +647,7 @@ bool StgFATStrm::SetPage( short nOff, sal_Int32 nNewPage )
...
@@ -647,7 +647,7 @@ bool StgFATStrm::SetPage( short nOff, sal_Int32 nNewPage )
bool
bRes
=
true
;
bool
bRes
=
true
;
if
(
nOff
<
StgHeader
::
GetFAT1Size
()
)
if
(
nOff
<
StgHeader
::
GetFAT1Size
()
)
rIo
.
aHdr
.
SetFATPage
(
nOff
,
nNewPage
);
rIo
.
m_
aHdr
.
SetFATPage
(
nOff
,
nNewPage
);
else
else
{
{
nOff
=
nOff
-
StgHeader
::
GetFAT1Size
();
nOff
=
nOff
-
StgHeader
::
GetFAT1Size
();
...
@@ -658,7 +658,7 @@ bool StgFATStrm::SetPage( short nOff, sal_Int32 nNewPage )
...
@@ -658,7 +658,7 @@ bool StgFATStrm::SetPage( short nOff, sal_Int32 nNewPage )
nOff
=
nOff
%
nMasterCount
;
nOff
=
nOff
%
nMasterCount
;
rtl
::
Reference
<
StgPage
>
pMaster
;
rtl
::
Reference
<
StgPage
>
pMaster
;
sal_Int32
nFAT
=
rIo
.
aHdr
.
GetFATChain
();
sal_Int32
nFAT
=
rIo
.
m_
aHdr
.
GetFATChain
();
for
(
sal_uInt16
nCount
=
0
;
nCount
<=
nBlocks
;
nCount
++
)
for
(
sal_uInt16
nCount
=
0
;
nCount
<=
nBlocks
;
nCount
++
)
{
{
if
(
nFAT
==
STG_EOF
||
nFAT
==
STG_FREE
)
if
(
nFAT
==
STG_EOF
||
nFAT
==
STG_FREE
)
...
@@ -755,8 +755,8 @@ bool StgFATStrm::SetSize( sal_Int32 nBytes )
...
@@ -755,8 +755,8 @@ bool StgFATStrm::SetSize( sal_Int32 nBytes )
// MegaMasterPages were created, mark it them as used
// MegaMasterPages were created, mark it them as used
sal_uInt32
nMax
=
rIo
.
aHdr
.
GetMasters
(
);
sal_uInt32
nMax
=
rIo
.
m_
aHdr
.
GetMasters
(
);
sal_uInt32
nFAT
=
rIo
.
aHdr
.
GetFATChain
();
sal_uInt32
nFAT
=
rIo
.
m_
aHdr
.
GetFATChain
();
if
(
nMasterAlloc
)
if
(
nMasterAlloc
)
for
(
sal_uInt32
nCount
=
0
;
nCount
<
nMax
;
nCount
++
)
for
(
sal_uInt32
nCount
=
0
;
nCount
<
nMax
;
nCount
++
)
{
{
...
@@ -782,7 +782,7 @@ bool StgFATStrm::SetSize( sal_Int32 nBytes )
...
@@ -782,7 +782,7 @@ bool StgFATStrm::SetSize( sal_Int32 nBytes )
}
}
}
}
nSize
=
nNew
*
nPageSize
;
nSize
=
nNew
*
nPageSize
;
rIo
.
aHdr
.
SetFATSize
(
nNew
);
rIo
.
m_
aHdr
.
SetFATSize
(
nNew
);
return
true
;
return
true
;
}
}
...
@@ -807,8 +807,8 @@ StgDataStrm::StgDataStrm( StgIo& r, StgDirEntry& p ) : StgStrm( r )
...
@@ -807,8 +807,8 @@ StgDataStrm::StgDataStrm( StgIo& r, StgDirEntry& p ) : StgStrm( r )
void
StgDataStrm
::
Init
(
sal_Int32
nBgn
,
sal_Int32
nLen
)
void
StgDataStrm
::
Init
(
sal_Int32
nBgn
,
sal_Int32
nLen
)
{
{
if
(
rIo
.
pFAT
)
if
(
rIo
.
m_
pFAT
)
pFat
=
new
StgFAT
(
*
rIo
.
pFAT
,
true
);
pFat
=
new
StgFAT
(
*
rIo
.
m_
pFAT
,
true
);
OSL_ENSURE
(
pFat
,
"The pointer should not be empty!"
);
OSL_ENSURE
(
pFat
,
"The pointer should not be empty!"
);
...
@@ -1013,9 +1013,9 @@ StgSmallStrm::StgSmallStrm( StgIo& r, StgDirEntry& p ) : StgStrm( r )
...
@@ -1013,9 +1013,9 @@ StgSmallStrm::StgSmallStrm( StgIo& r, StgDirEntry& p ) : StgStrm( r )
void
StgSmallStrm
::
Init
(
sal_Int32
nBgn
,
sal_Int32
nLen
)
void
StgSmallStrm
::
Init
(
sal_Int32
nBgn
,
sal_Int32
nLen
)
{
{
if
(
rIo
.
pDataFAT
)
if
(
rIo
.
m_
pDataFAT
)
pFat
=
new
StgFAT
(
*
rIo
.
pDataFAT
,
false
);
pFat
=
new
StgFAT
(
*
rIo
.
m_
pDataFAT
,
false
);
pData
=
rIo
.
pDataStrm
;
pData
=
rIo
.
m_
pDataStrm
;
OSL_ENSURE
(
pFat
&&
pData
,
"The pointers should not be empty!"
);
OSL_ENSURE
(
pFat
&&
pData
,
"The pointers should not be empty!"
);
nPageSize
=
rIo
.
GetDataPageSize
();
nPageSize
=
rIo
.
GetDataPageSize
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment