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
a9f0a1b4
Kaydet (Commit)
a9f0a1b4
authored
Tem 27, 2012
tarafından
Eike Rathke [er]
Kaydeden (comit)
Michael Stahl
Tem 27, 2012
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
StarCalc 1.0: fix memory leaks
üst
30329249
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
102 additions
and
56 deletions
+102
-56
scflt.hxx
sc/source/filter/inc/scflt.hxx
+1
-0
scflt.cxx
sc/source/filter/starcalc/scflt.cxx
+101
-56
No files found.
sc/source/filter/inc/scflt.hxx
Dosyayı görüntüle @
a9f0a1b4
...
@@ -417,6 +417,7 @@ struct Sc10ColAttr
...
@@ -417,6 +417,7 @@ struct Sc10ColAttr
Sc10ColData
*
pData
;
Sc10ColData
*
pData
;
Sc10ColAttr
()
:
pData
(
NULL
)
{}
Sc10ColAttr
()
:
pData
(
NULL
)
{}
~
Sc10ColAttr
()
{
delete
[]
pData
;
}
};
};
// GraphHeader
// GraphHeader
...
...
sc/source/filter/starcalc/scflt.cxx
Dosyayı görüntüle @
a9f0a1b4
...
@@ -81,36 +81,51 @@ using namespace com::sun::star;
...
@@ -81,36 +81,51 @@ using namespace com::sun::star;
#define DEFCHARSET RTL_TEXTENCODING_MS_1252
#define DEFCHARSET RTL_TEXTENCODING_MS_1252
#define SC10TOSTRING(p)
String(p
,DEFCHARSET)
#define SC10TOSTRING(p)
String((p)
,DEFCHARSET)
const
SCCOL
SC10MAXCOL
=
255
;
// #i85906# don't try to load more columns than there are in the file
const
SCCOL
SC10MAXCOL
=
255
;
// #i85906# don't try to load more columns than there are in the file
void
lcl_ReadFileHeader
(
SvStream
&
rStream
,
Sc10FileHeader
&
rFileHeader
)
/** Those strings are used with SC10TOSTRING() and strcmp() and such, hence
need to be 0-terminated. */
static
void
lcl_ReadFixedString
(
SvStream
&
rStream
,
void
*
pData
,
size_t
nLen
)
{
{
rStream
.
Read
(
&
rFileHeader
.
CopyRight
,
sizeof
(
rFileHeader
.
CopyRight
));
sal_Char
*
pBuf
=
static_cast
<
sal_Char
*>
(
pData
);
if
(
!
nLen
)
pBuf
[
0
]
=
0
;
else
{
rStream
.
Read
(
pBuf
,
nLen
);
pBuf
[
nLen
-
1
]
=
0
;
}
}
static
void
lcl_ReadFileHeader
(
SvStream
&
rStream
,
Sc10FileHeader
&
rFileHeader
)
{
lcl_ReadFixedString
(
rStream
,
&
rFileHeader
.
CopyRight
,
sizeof
(
rFileHeader
.
CopyRight
));
rStream
>>
rFileHeader
.
Version
;
rStream
>>
rFileHeader
.
Version
;
rStream
.
Read
(
&
rFileHeader
.
Reserved
,
sizeof
(
rFileHeader
.
Reserved
));
rStream
.
Read
(
&
rFileHeader
.
Reserved
,
sizeof
(
rFileHeader
.
Reserved
));
}
}
void
lcl_ReadTabProtect
(
SvStream
&
rStream
,
Sc10TableProtect
&
rProtect
)
static
void
lcl_ReadTabProtect
(
SvStream
&
rStream
,
Sc10TableProtect
&
rProtect
)
{
{
rStream
.
Read
(
&
rProtect
.
PassWord
,
sizeof
(
rProtect
.
PassWord
));
lcl_ReadFixedString
(
rStream
,
&
rProtect
.
PassWord
,
sizeof
(
rProtect
.
PassWord
));
rStream
>>
rProtect
.
Flags
;
rStream
>>
rProtect
.
Flags
;
rStream
>>
rProtect
.
Protect
;
rStream
>>
rProtect
.
Protect
;
}
}
void
lcl_ReadSheetProtect
(
SvStream
&
rStream
,
Sc10SheetProtect
&
rProtect
)
static
void
lcl_ReadSheetProtect
(
SvStream
&
rStream
,
Sc10SheetProtect
&
rProtect
)
{
{
rStream
.
Read
(
&
rProtect
.
PassWord
,
sizeof
(
rProtect
.
PassWord
));
lcl_ReadFixedString
(
rStream
,
&
rProtect
.
PassWord
,
sizeof
(
rProtect
.
PassWord
));
rStream
>>
rProtect
.
Flags
;
rStream
>>
rProtect
.
Flags
;
rStream
>>
rProtect
.
Protect
;
rStream
>>
rProtect
.
Protect
;
}
}
void
lcl_ReadRGB
(
SvStream
&
rStream
,
Sc10Color
&
rColor
)
static
void
lcl_ReadRGB
(
SvStream
&
rStream
,
Sc10Color
&
rColor
)
{
{
rStream
>>
rColor
.
Dummy
;
rStream
>>
rColor
.
Dummy
;
rStream
>>
rColor
.
Blue
;
rStream
>>
rColor
.
Blue
;
...
@@ -119,21 +134,21 @@ void lcl_ReadRGB(SvStream& rStream, Sc10Color& rColor)
...
@@ -119,21 +134,21 @@ void lcl_ReadRGB(SvStream& rStream, Sc10Color& rColor)
}
}
void
lcl_ReadPalette
(
SvStream
&
rStream
,
Sc10Color
*
pPalette
)
static
void
lcl_ReadPalette
(
SvStream
&
rStream
,
Sc10Color
*
pPalette
)
{
{
for
(
sal_uInt16
i
=
0
;
i
<
16
;
i
++
)
for
(
sal_uInt16
i
=
0
;
i
<
16
;
i
++
)
lcl_ReadRGB
(
rStream
,
pPalette
[
i
]);
lcl_ReadRGB
(
rStream
,
pPalette
[
i
]);
}
}
void
lcl_ReadValueFormat
(
SvStream
&
rStream
,
Sc10ValueFormat
&
rFormat
)
static
void
lcl_ReadValueFormat
(
SvStream
&
rStream
,
Sc10ValueFormat
&
rFormat
)
{
{
rStream
>>
rFormat
.
Format
;
rStream
>>
rFormat
.
Format
;
rStream
>>
rFormat
.
Info
;
rStream
>>
rFormat
.
Info
;
}
}
void
lcl_ReadLogFont
(
SvStream
&
rStream
,
Sc10LogFont
&
rFont
)
static
void
lcl_ReadLogFont
(
SvStream
&
rStream
,
Sc10LogFont
&
rFont
)
{
{
rStream
>>
rFont
.
lfHeight
;
rStream
>>
rFont
.
lfHeight
;
rStream
>>
rFont
.
lfWidth
;
rStream
>>
rFont
.
lfWidth
;
...
@@ -148,11 +163,11 @@ void lcl_ReadLogFont(SvStream& rStream, Sc10LogFont& rFont)
...
@@ -148,11 +163,11 @@ void lcl_ReadLogFont(SvStream& rStream, Sc10LogFont& rFont)
rStream
>>
rFont
.
lfClipPrecision
;
rStream
>>
rFont
.
lfClipPrecision
;
rStream
>>
rFont
.
lfQuality
;
rStream
>>
rFont
.
lfQuality
;
rStream
>>
rFont
.
lfPitchAndFamily
;
rStream
>>
rFont
.
lfPitchAndFamily
;
rStream
.
Read
(
&
rFont
.
lfFaceName
,
sizeof
(
rFont
.
lfFaceName
));
lcl_ReadFixedString
(
rStream
,
&
rFont
.
lfFaceName
,
sizeof
(
rFont
.
lfFaceName
));
}
}
void
lcl_ReadBlockRect
(
SvStream
&
rStream
,
Sc10BlockRect
&
rBlock
)
static
void
lcl_ReadBlockRect
(
SvStream
&
rStream
,
Sc10BlockRect
&
rBlock
)
{
{
rStream
>>
rBlock
.
x1
;
rStream
>>
rBlock
.
x1
;
rStream
>>
rBlock
.
y1
;
rStream
>>
rBlock
.
y1
;
...
@@ -161,9 +176,9 @@ void lcl_ReadBlockRect(SvStream& rStream, Sc10BlockRect& rBlock)
...
@@ -161,9 +176,9 @@ void lcl_ReadBlockRect(SvStream& rStream, Sc10BlockRect& rBlock)
}
}
void
lcl_ReadHeadFootLine
(
SvStream
&
rStream
,
Sc10HeadFootLine
&
rLine
)
static
void
lcl_ReadHeadFootLine
(
SvStream
&
rStream
,
Sc10HeadFootLine
&
rLine
)
{
{
rStream
.
Read
(
&
rLine
.
Title
,
sizeof
(
rLine
.
Title
));
lcl_ReadFixedString
(
rStream
,
&
rLine
.
Title
,
sizeof
(
rLine
.
Title
));
lcl_ReadLogFont
(
rStream
,
rLine
.
LogFont
);
lcl_ReadLogFont
(
rStream
,
rLine
.
LogFont
);
rStream
>>
rLine
.
HorJustify
;
rStream
>>
rLine
.
HorJustify
;
rStream
>>
rLine
.
VerJustify
;
rStream
>>
rLine
.
VerJustify
;
...
@@ -177,7 +192,7 @@ void lcl_ReadHeadFootLine(SvStream& rStream, Sc10HeadFootLine& rLine)
...
@@ -177,7 +192,7 @@ void lcl_ReadHeadFootLine(SvStream& rStream, Sc10HeadFootLine& rLine)
}
}
void
lcl_ReadPageFormat
(
SvStream
&
rStream
,
Sc10PageFormat
&
rFormat
)
static
void
lcl_ReadPageFormat
(
SvStream
&
rStream
,
Sc10PageFormat
&
rFormat
)
{
{
lcl_ReadHeadFootLine
(
rStream
,
rFormat
.
HeadLine
);
lcl_ReadHeadFootLine
(
rStream
,
rFormat
.
HeadLine
);
lcl_ReadHeadFootLine
(
rStream
,
rFormat
.
FootLine
);
lcl_ReadHeadFootLine
(
rStream
,
rFormat
.
FootLine
);
...
@@ -198,7 +213,7 @@ void lcl_ReadPageFormat(SvStream& rStream, Sc10PageFormat& rFormat)
...
@@ -198,7 +213,7 @@ void lcl_ReadPageFormat(SvStream& rStream, Sc10PageFormat& rFormat)
rStream
>>
rFormat
.
PrintColRow
;
rStream
>>
rFormat
.
PrintColRow
;
rStream
>>
rFormat
.
PrintNote
;
rStream
>>
rFormat
.
PrintNote
;
rStream
>>
rFormat
.
TopBottomDir
;
rStream
>>
rFormat
.
TopBottomDir
;
rStream
.
Read
(
&
rFormat
.
PrintAreaName
,
sizeof
(
rFormat
.
PrintAreaName
));
lcl_ReadFixedString
(
rStream
,
&
rFormat
.
PrintAreaName
,
sizeof
(
rFormat
.
PrintAreaName
));
lcl_ReadBlockRect
(
rStream
,
rFormat
.
PrintArea
);
lcl_ReadBlockRect
(
rStream
,
rFormat
.
PrintArea
);
rStream
.
Read
(
&
rFormat
.
PrnZoom
,
sizeof
(
rFormat
.
PrnZoom
));
rStream
.
Read
(
&
rFormat
.
PrnZoom
,
sizeof
(
rFormat
.
PrnZoom
));
rStream
>>
rFormat
.
FirstPageNo
;
rStream
>>
rFormat
.
FirstPageNo
;
...
@@ -210,7 +225,7 @@ void lcl_ReadPageFormat(SvStream& rStream, Sc10PageFormat& rFormat)
...
@@ -210,7 +225,7 @@ void lcl_ReadPageFormat(SvStream& rStream, Sc10PageFormat& rFormat)
}
}
void
lcl_ReadGraphHeader
(
SvStream
&
rStream
,
Sc10GraphHeader
&
rHeader
)
static
void
lcl_ReadGraphHeader
(
SvStream
&
rStream
,
Sc10GraphHeader
&
rHeader
)
{
{
rStream
>>
rHeader
.
Typ
;
rStream
>>
rHeader
.
Typ
;
rStream
>>
rHeader
.
CarretX
;
rStream
>>
rHeader
.
CarretX
;
...
@@ -230,9 +245,9 @@ void lcl_ReadGraphHeader(SvStream& rStream, Sc10GraphHeader& rHeader)
...
@@ -230,9 +245,9 @@ void lcl_ReadGraphHeader(SvStream& rStream, Sc10GraphHeader& rHeader)
}
}
void
lcl_ReadImageHeaer
(
SvStream
&
rStream
,
Sc10ImageHeader
&
rHeader
)
static
void
lcl_ReadImageHeaer
(
SvStream
&
rStream
,
Sc10ImageHeader
&
rHeader
)
{
{
rStream
.
Read
(
&
rHeader
.
FileName
,
sizeof
(
rHeader
.
FileName
));
lcl_ReadFixedString
(
rStream
,
&
rHeader
.
FileName
,
sizeof
(
rHeader
.
FileName
));
rStream
>>
rHeader
.
Typ
;
rStream
>>
rHeader
.
Typ
;
rStream
>>
rHeader
.
Linked
;
rStream
>>
rHeader
.
Linked
;
rStream
>>
rHeader
.
x1
;
rStream
>>
rHeader
.
x1
;
...
@@ -243,7 +258,7 @@ void lcl_ReadImageHeaer(SvStream& rStream, Sc10ImageHeader& rHeader)
...
@@ -243,7 +258,7 @@ void lcl_ReadImageHeaer(SvStream& rStream, Sc10ImageHeader& rHeader)
}
}
void
lcl_ReadChartHeader
(
SvStream
&
rStream
,
Sc10ChartHeader
&
rHeader
)
static
void
lcl_ReadChartHeader
(
SvStream
&
rStream
,
Sc10ChartHeader
&
rHeader
)
{
{
rStream
>>
rHeader
.
MM
;
rStream
>>
rHeader
.
MM
;
rStream
>>
rHeader
.
xExt
;
rStream
>>
rHeader
.
xExt
;
...
@@ -252,7 +267,7 @@ void lcl_ReadChartHeader(SvStream& rStream, Sc10ChartHeader& rHeader)
...
@@ -252,7 +267,7 @@ void lcl_ReadChartHeader(SvStream& rStream, Sc10ChartHeader& rHeader)
}
}
void
lcl_ReadChartSheetData
(
SvStream
&
rStream
,
Sc10ChartSheetData
&
rSheetData
)
static
void
lcl_ReadChartSheetData
(
SvStream
&
rStream
,
Sc10ChartSheetData
&
rSheetData
)
{
{
rStream
>>
rSheetData
.
HasTitle
;
rStream
>>
rSheetData
.
HasTitle
;
rStream
>>
rSheetData
.
TitleX
;
rStream
>>
rSheetData
.
TitleX
;
...
@@ -281,15 +296,15 @@ void lcl_ReadChartSheetData(SvStream& rStream, Sc10ChartSheetData& rSheetData)
...
@@ -281,15 +296,15 @@ void lcl_ReadChartSheetData(SvStream& rStream, Sc10ChartSheetData& rSheetData)
}
}
void
lcl_ReadChartTypeData
(
SvStream
&
rStream
,
Sc10ChartTypeData
&
rTypeData
)
static
void
lcl_ReadChartTypeData
(
SvStream
&
rStream
,
Sc10ChartTypeData
&
rTypeData
)
{
{
rStream
>>
rTypeData
.
NumSets
;
rStream
>>
rTypeData
.
NumSets
;
rStream
>>
rTypeData
.
NumPoints
;
rStream
>>
rTypeData
.
NumPoints
;
rStream
>>
rTypeData
.
DrawMode
;
rStream
>>
rTypeData
.
DrawMode
;
rStream
>>
rTypeData
.
GraphType
;
rStream
>>
rTypeData
.
GraphType
;
rStream
>>
rTypeData
.
GraphStyle
;
rStream
>>
rTypeData
.
GraphStyle
;
rStream
.
Read
(
&
rTypeData
.
GraphTitle
,
sizeof
(
rTypeData
.
GraphTitle
));
lcl_ReadFixedString
(
rStream
,
&
rTypeData
.
GraphTitle
,
sizeof
(
rTypeData
.
GraphTitle
));
rStream
.
Read
(
&
rTypeData
.
BottomTitle
,
sizeof
(
rTypeData
.
BottomTitle
));
lcl_ReadFixedString
(
rStream
,
&
rTypeData
.
BottomTitle
,
sizeof
(
rTypeData
.
BottomTitle
));
sal_uInt16
i
;
sal_uInt16
i
;
for
(
i
=
0
;
i
<
256
;
i
++
)
for
(
i
=
0
;
i
<
256
;
i
++
)
rStream
>>
rTypeData
.
SymbolData
[
i
];
rStream
>>
rTypeData
.
SymbolData
[
i
];
...
@@ -305,7 +320,7 @@ void lcl_ReadChartTypeData(SvStream& rStream, Sc10ChartTypeData& rTypeData)
...
@@ -305,7 +320,7 @@ void lcl_ReadChartTypeData(SvStream& rStream, Sc10ChartTypeData& rTypeData)
rStream
>>
rTypeData
.
NumGraphStyles
[
i
];
rStream
>>
rTypeData
.
NumGraphStyles
[
i
];
rStream
>>
rTypeData
.
ShowLegend
;
rStream
>>
rTypeData
.
ShowLegend
;
for
(
i
=
0
;
i
<
256
;
i
++
)
for
(
i
=
0
;
i
<
256
;
i
++
)
rStream
.
Read
(
&
rTypeData
.
LegendText
[
i
],
sizeof
(
Sc10ChartText
));
lcl_ReadFixedString
(
rStream
,
&
rTypeData
.
LegendText
[
i
],
sizeof
(
Sc10ChartText
));
rStream
>>
rTypeData
.
ExplodePie
;
rStream
>>
rTypeData
.
ExplodePie
;
rStream
>>
rTypeData
.
FontUse
;
rStream
>>
rTypeData
.
FontUse
;
for
(
i
=
0
;
i
<
5
;
i
++
)
for
(
i
=
0
;
i
<
5
;
i
++
)
...
@@ -318,8 +333,8 @@ void lcl_ReadChartTypeData(SvStream& rStream, Sc10ChartTypeData& rTypeData)
...
@@ -318,8 +333,8 @@ void lcl_ReadChartTypeData(SvStream& rStream, Sc10ChartTypeData& rTypeData)
rStream
>>
rTypeData
.
Labels
;
rStream
>>
rTypeData
.
Labels
;
rStream
>>
rTypeData
.
LabelEvery
;
rStream
>>
rTypeData
.
LabelEvery
;
for
(
i
=
0
;
i
<
50
;
i
++
)
for
(
i
=
0
;
i
<
50
;
i
++
)
rStream
.
Read
(
&
rTypeData
.
LabelText
[
i
],
sizeof
(
Sc10ChartText
));
lcl_ReadFixedString
(
rStream
,
&
rTypeData
.
LabelText
[
i
],
sizeof
(
Sc10ChartText
));
rStream
.
Read
(
&
rTypeData
.
LeftTitle
,
sizeof
(
rTypeData
.
LeftTitle
));
lcl_ReadFixedString
(
rStream
,
&
rTypeData
.
LeftTitle
,
sizeof
(
rTypeData
.
LeftTitle
));
rStream
.
Read
(
&
rTypeData
.
Reserved
,
sizeof
(
rTypeData
.
Reserved
));
rStream
.
Read
(
&
rTypeData
.
Reserved
,
sizeof
(
rTypeData
.
Reserved
));
}
}
...
@@ -344,7 +359,7 @@ double lcl_PascalToDouble(sal_Char* tp6)
...
@@ -344,7 +359,7 @@ double lcl_PascalToDouble(sal_Char* tp6)
}
}
void
lcl_ChangeColor
(
sal_uInt16
nIndex
,
Color
&
rColor
)
static
void
lcl_ChangeColor
(
sal_uInt16
nIndex
,
Color
&
rColor
)
{
{
ColorData
aCol
;
ColorData
aCol
;
...
@@ -380,6 +395,23 @@ String lcl_MakeOldPageStyleFormatName( sal_uInt16 i )
...
@@ -380,6 +395,23 @@ String lcl_MakeOldPageStyleFormatName( sal_uInt16 i )
return
aName
;
return
aName
;
}
}
template
<
typename
T
>
sal_uLong
insert_new
(
ScCollection
*
pCollection
,
SvStream
&
rStream
)
{
T
*
pData
=
new
(
::
std
::
nothrow
)
T
(
rStream
);
sal_uLong
nError
=
rStream
.
GetError
();
if
(
pData
)
{
if
(
nError
)
delete
pData
;
else
pCollection
->
Insert
(
pData
);
}
else
nError
=
errOutOfMemory
;
return
nError
;
}
//--------------------------------------------
//--------------------------------------------
// Font
// Font
//--------------------------------------------
//--------------------------------------------
...
@@ -410,8 +442,7 @@ Sc10FontCollection::Sc10FontCollection(SvStream& rStream) :
...
@@ -410,8 +442,7 @@ Sc10FontCollection::Sc10FontCollection(SvStream& rStream) :
rStream
>>
nAnz
;
rStream
>>
nAnz
;
for
(
sal_uInt16
i
=
0
;
(
i
<
nAnz
)
&&
(
nError
==
0
);
i
++
)
for
(
sal_uInt16
i
=
0
;
(
i
<
nAnz
)
&&
(
nError
==
0
);
i
++
)
{
{
Insert
(
new
Sc10FontData
(
rStream
));
nError
=
insert_new
<
Sc10FontData
>
(
this
,
rStream
);
nError
=
rStream
.
GetError
();
}
}
}
}
else
else
...
@@ -455,8 +486,7 @@ Sc10NameCollection::Sc10NameCollection(SvStream& rStream) :
...
@@ -455,8 +486,7 @@ Sc10NameCollection::Sc10NameCollection(SvStream& rStream) :
rStream
>>
nAnz
;
rStream
>>
nAnz
;
for
(
sal_uInt16
i
=
0
;
(
i
<
nAnz
)
&&
(
nError
==
0
);
i
++
)
for
(
sal_uInt16
i
=
0
;
(
i
<
nAnz
)
&&
(
nError
==
0
);
i
++
)
{
{
Insert
(
new
Sc10NameData
(
rStream
));
nError
=
insert_new
<
Sc10NameData
>
(
this
,
rStream
);
nError
=
rStream
.
GetError
();
}
}
}
}
else
else
...
@@ -472,7 +502,7 @@ Sc10NameCollection::Sc10NameCollection(SvStream& rStream) :
...
@@ -472,7 +502,7 @@ Sc10NameCollection::Sc10NameCollection(SvStream& rStream) :
Sc10PatternData
::
Sc10PatternData
(
SvStream
&
rStream
)
Sc10PatternData
::
Sc10PatternData
(
SvStream
&
rStream
)
{
{
rStream
.
Read
(
Name
,
sizeof
(
Name
));
lcl_ReadFixedString
(
rStream
,
Name
,
sizeof
(
Name
));
lcl_ReadValueFormat
(
rStream
,
ValueFormat
);
lcl_ReadValueFormat
(
rStream
,
ValueFormat
);
lcl_ReadLogFont
(
rStream
,
LogFont
);
lcl_ReadLogFont
(
rStream
,
LogFont
);
...
@@ -500,8 +530,7 @@ Sc10PatternCollection::Sc10PatternCollection(SvStream& rStream) :
...
@@ -500,8 +530,7 @@ Sc10PatternCollection::Sc10PatternCollection(SvStream& rStream) :
rStream
>>
nAnz
;
rStream
>>
nAnz
;
for
(
sal_uInt16
i
=
0
;
(
i
<
nAnz
)
&&
(
nError
==
0
);
i
++
)
for
(
sal_uInt16
i
=
0
;
(
i
<
nAnz
)
&&
(
nError
==
0
);
i
++
)
{
{
Insert
(
new
Sc10PatternData
(
rStream
));
nError
=
insert_new
<
Sc10PatternData
>
(
this
,
rStream
);
nError
=
rStream
.
GetError
();
}
}
}
}
else
else
...
@@ -517,7 +546,7 @@ Sc10PatternCollection::Sc10PatternCollection(SvStream& rStream) :
...
@@ -517,7 +546,7 @@ Sc10PatternCollection::Sc10PatternCollection(SvStream& rStream) :
Sc10DataBaseData
::
Sc10DataBaseData
(
SvStream
&
rStream
)
Sc10DataBaseData
::
Sc10DataBaseData
(
SvStream
&
rStream
)
{
{
rStream
.
Read
(
&
DataBaseRec
.
Name
,
sizeof
(
DataBaseRec
.
Name
));
lcl_ReadFixedString
(
rStream
,
&
DataBaseRec
.
Name
,
sizeof
(
DataBaseRec
.
Name
));
rStream
>>
DataBaseRec
.
Tab
;
rStream
>>
DataBaseRec
.
Tab
;
lcl_ReadBlockRect
(
rStream
,
DataBaseRec
.
Block
);
lcl_ReadBlockRect
(
rStream
,
DataBaseRec
.
Block
);
rStream
>>
DataBaseRec
.
RowHeader
;
rStream
>>
DataBaseRec
.
RowHeader
;
...
@@ -532,21 +561,21 @@ Sc10DataBaseData::Sc10DataBaseData(SvStream& rStream)
...
@@ -532,21 +561,21 @@ Sc10DataBaseData::Sc10DataBaseData(SvStream& rStream)
rStream
>>
DataBaseRec
.
QueryField0
;
rStream
>>
DataBaseRec
.
QueryField0
;
rStream
>>
DataBaseRec
.
QueryOp0
;
rStream
>>
DataBaseRec
.
QueryOp0
;
rStream
>>
DataBaseRec
.
QueryByString0
;
rStream
>>
DataBaseRec
.
QueryByString0
;
rStream
.
Read
(
&
DataBaseRec
.
QueryString0
,
sizeof
(
DataBaseRec
.
QueryString0
));
lcl_ReadFixedString
(
rStream
,
&
DataBaseRec
.
QueryString0
,
sizeof
(
DataBaseRec
.
QueryString0
));
DataBaseRec
.
QueryValue0
=
ScfTools
::
ReadLongDouble
(
rStream
);
DataBaseRec
.
QueryValue0
=
ScfTools
::
ReadLongDouble
(
rStream
);
rStream
>>
DataBaseRec
.
QueryConnect1
;
rStream
>>
DataBaseRec
.
QueryConnect1
;
rStream
>>
DataBaseRec
.
QueryField1
;
rStream
>>
DataBaseRec
.
QueryField1
;
rStream
>>
DataBaseRec
.
QueryOp1
;
rStream
>>
DataBaseRec
.
QueryOp1
;
rStream
>>
DataBaseRec
.
QueryByString1
;
rStream
>>
DataBaseRec
.
QueryByString1
;
rStream
.
Read
(
&
DataBaseRec
.
QueryString1
,
sizeof
(
DataBaseRec
.
QueryString1
));
lcl_ReadFixedString
(
rStream
,
&
DataBaseRec
.
QueryString1
,
sizeof
(
DataBaseRec
.
QueryString1
));
DataBaseRec
.
QueryValue1
=
ScfTools
::
ReadLongDouble
(
rStream
);
DataBaseRec
.
QueryValue1
=
ScfTools
::
ReadLongDouble
(
rStream
);
rStream
>>
DataBaseRec
.
QueryConnect2
;
rStream
>>
DataBaseRec
.
QueryConnect2
;
rStream
>>
DataBaseRec
.
QueryField2
;
rStream
>>
DataBaseRec
.
QueryField2
;
rStream
>>
DataBaseRec
.
QueryOp2
;
rStream
>>
DataBaseRec
.
QueryOp2
;
rStream
>>
DataBaseRec
.
QueryByString2
;
rStream
>>
DataBaseRec
.
QueryByString2
;
rStream
.
Read
(
&
DataBaseRec
.
QueryString2
,
sizeof
(
DataBaseRec
.
QueryString2
));
lcl_ReadFixedString
(
rStream
,
&
DataBaseRec
.
QueryString2
,
sizeof
(
DataBaseRec
.
QueryString2
));
DataBaseRec
.
QueryValue2
=
ScfTools
::
ReadLongDouble
(
rStream
);
DataBaseRec
.
QueryValue2
=
ScfTools
::
ReadLongDouble
(
rStream
);
}
}
...
@@ -559,13 +588,12 @@ Sc10DataBaseCollection::Sc10DataBaseCollection(SvStream& rStream) :
...
@@ -559,13 +588,12 @@ Sc10DataBaseCollection::Sc10DataBaseCollection(SvStream& rStream) :
rStream
>>
ID
;
rStream
>>
ID
;
if
(
ID
==
DataBaseID
)
if
(
ID
==
DataBaseID
)
{
{
rStream
.
Read
(
ActName
,
sizeof
(
ActName
));
lcl_ReadFixedString
(
rStream
,
ActName
,
sizeof
(
ActName
));
sal_uInt16
nAnz
;
sal_uInt16
nAnz
;
rStream
>>
nAnz
;
rStream
>>
nAnz
;
for
(
sal_uInt16
i
=
0
;
(
i
<
nAnz
)
&&
(
nError
==
0
);
i
++
)
for
(
sal_uInt16
i
=
0
;
(
i
<
nAnz
)
&&
(
nError
==
0
);
i
++
)
{
{
Insert
(
new
Sc10DataBaseData
(
rStream
));
nError
=
insert_new
<
Sc10DataBaseData
>
(
this
,
rStream
);
nError
=
rStream
.
GetError
();
}
}
}
}
else
else
...
@@ -1099,12 +1127,16 @@ void Sc10Import::LoadPalette()
...
@@ -1099,12 +1127,16 @@ void Sc10Import::LoadPalette()
void
Sc10Import
::
LoadFontCollection
()
void
Sc10Import
::
LoadFontCollection
()
{
{
pFontCollection
=
new
Sc10FontCollection
(
rStream
);
pFontCollection
=
new
Sc10FontCollection
(
rStream
);
if
(
!
nError
)
nError
=
pFontCollection
->
GetError
();
}
}
void
Sc10Import
::
LoadNameCollection
()
void
Sc10Import
::
LoadNameCollection
()
{
{
pNameCollection
=
new
Sc10NameCollection
(
rStream
);
pNameCollection
=
new
Sc10NameCollection
(
rStream
);
if
(
!
nError
)
nError
=
pNameCollection
->
GetError
();
}
}
...
@@ -1125,6 +1157,10 @@ void Sc10Import::ImportNameCollection()
...
@@ -1125,6 +1157,10 @@ void Sc10Import::ImportNameCollection()
void
Sc10Import
::
LoadPatternCollection
()
void
Sc10Import
::
LoadPatternCollection
()
{
{
pPatternCollection
=
new
Sc10PatternCollection
(
rStream
);
pPatternCollection
=
new
Sc10PatternCollection
(
rStream
);
if
(
!
nError
)
nError
=
pPatternCollection
->
GetError
();
if
(
nError
==
errOutOfMemory
)
return
;
// hopeless
ScStyleSheetPool
*
pStylePool
=
pDoc
->
GetStyleSheetPool
();
ScStyleSheetPool
*
pStylePool
=
pDoc
->
GetStyleSheetPool
();
for
(
sal_uInt16
i
=
0
;
i
<
pPatternCollection
->
GetCount
()
;
i
++
)
for
(
sal_uInt16
i
=
0
;
i
<
pPatternCollection
->
GetCount
()
;
i
++
)
{
{
...
@@ -1355,6 +1391,10 @@ void Sc10Import::LoadPatternCollection()
...
@@ -1355,6 +1391,10 @@ void Sc10Import::LoadPatternCollection()
void
Sc10Import
::
LoadDataBaseCollection
()
void
Sc10Import
::
LoadDataBaseCollection
()
{
{
pDataBaseCollection
=
new
Sc10DataBaseCollection
(
rStream
);
pDataBaseCollection
=
new
Sc10DataBaseCollection
(
rStream
);
if
(
!
nError
)
nError
=
pDataBaseCollection
->
GetError
();
if
(
nError
==
errOutOfMemory
)
return
;
// hopeless
for
(
sal_uInt16
i
=
0
;
i
<
pDataBaseCollection
->
GetCount
()
;
i
++
)
for
(
sal_uInt16
i
=
0
;
i
<
pDataBaseCollection
->
GetCount
()
;
i
++
)
{
{
Sc10DataBaseData
*
pOldData
=
pDataBaseCollection
->
At
(
i
);
Sc10DataBaseData
*
pOldData
=
pDataBaseCollection
->
At
(
i
);
...
@@ -1718,6 +1758,8 @@ void Sc10Import::LoadColAttr(SCCOL Col, SCTAB Tab)
...
@@ -1718,6 +1758,8 @@ void Sc10Import::LoadColAttr(SCCOL Col, SCTAB Tab)
{
{
FontFamily
eFam
=
FAMILY_DONTKNOW
;
FontFamily
eFam
=
FAMILY_DONTKNOW
;
Sc10FontData
*
pFont
=
pFontCollection
->
At
(
pColData
->
Value
);
Sc10FontData
*
pFont
=
pFontCollection
->
At
(
pColData
->
Value
);
if
(
pFont
)
{
switch
(
pFont
->
PitchAndFamily
&
0xF0
)
switch
(
pFont
->
PitchAndFamily
&
0xF0
)
{
{
case
ffDontCare
:
eFam
=
FAMILY_DONTKNOW
;
break
;
case
ffDontCare
:
eFam
=
FAMILY_DONTKNOW
;
break
;
...
@@ -1734,6 +1776,7 @@ void Sc10Import::LoadColAttr(SCCOL Col, SCTAB Tab)
...
@@ -1734,6 +1776,7 @@ void Sc10Import::LoadColAttr(SCCOL Col, SCTAB Tab)
aScPattern
.
GetItemSet
().
Put
(
SvxFontHeightItem
(
Abs
(
pFont
->
Height
),
100
,
ATTR_FONT_HEIGHT
));
aScPattern
.
GetItemSet
().
Put
(
SvxFontHeightItem
(
Abs
(
pFont
->
Height
),
100
,
ATTR_FONT_HEIGHT
));
pDoc
->
ApplyPatternAreaTab
(
Col
,
nStart
,
Col
,
nEnd
,
Tab
,
aScPattern
);
pDoc
->
ApplyPatternAreaTab
(
Col
,
nStart
,
Col
,
nEnd
,
Tab
,
aScPattern
);
}
}
}
nStart
=
nEnd
+
1
;
nStart
=
nEnd
+
1
;
}
}
...
@@ -2118,24 +2161,16 @@ void Sc10Import::LoadColAttr(SCCOL Col, SCTAB Tab)
...
@@ -2118,24 +2161,16 @@ void Sc10Import::LoadColAttr(SCCOL Col, SCTAB Tab)
nStart
=
nEnd
+
1
;
nStart
=
nEnd
+
1
;
}
}
}
}
delete
[]
aFont
.
pData
;
delete
[]
aAttr
.
pData
;
delete
[]
aJustify
.
pData
;
delete
[]
aFrame
.
pData
;
delete
[]
aRaster
.
pData
;
delete
[]
aValue
.
pData
;
delete
[]
aColor
.
pData
;
delete
[]
aFrameColor
.
pData
;
delete
[]
aFlag
.
pData
;
delete
[]
aPattern
.
pData
;
}
}
void
Sc10Import
::
LoadAttr
(
Sc10ColAttr
&
rAttr
)
void
Sc10Import
::
LoadAttr
(
Sc10ColAttr
&
rAttr
)
{
{
// rAttr is not reused, otherwise we'd have to delete [] rAttr.pData;
rStream
>>
rAttr
.
Count
;
rStream
>>
rAttr
.
Count
;
rAttr
.
pData
=
new
Sc10ColData
[
rAttr
.
Count
];
if
(
rAttr
.
Count
)
{
rAttr
.
pData
=
new
(
::
std
::
nothrow
)
Sc10ColData
[
rAttr
.
Count
];
if
(
rAttr
.
pData
!=
NULL
)
if
(
rAttr
.
pData
!=
NULL
)
{
{
for
(
sal_uInt16
i
=
0
;
i
<
rAttr
.
Count
;
i
++
)
for
(
sal_uInt16
i
=
0
;
i
<
rAttr
.
Count
;
i
++
)
...
@@ -2146,7 +2181,11 @@ void Sc10Import::LoadAttr(Sc10ColAttr& rAttr)
...
@@ -2146,7 +2181,11 @@ void Sc10Import::LoadAttr(Sc10ColAttr& rAttr)
nError
=
rStream
.
GetError
();
nError
=
rStream
.
GetError
();
}
}
else
else
{
nError
=
errOutOfMemory
;
nError
=
errOutOfMemory
;
rAttr
.
Count
=
0
;
}
}
}
}
...
@@ -2355,13 +2394,18 @@ void Sc10Import::LoadObjects()
...
@@ -2355,13 +2394,18 @@ void Sc10Import::LoadObjects()
{
{
Sc10ChartHeader
ChartHeader
;
Sc10ChartHeader
ChartHeader
;
Sc10ChartSheetData
ChartSheetData
;
Sc10ChartSheetData
ChartSheetData
;
Sc10ChartTypeData
*
pTypeData
=
new
Sc10ChartTypeData
;
Sc10ChartTypeData
*
pTypeData
=
new
(
::
std
::
nothrow
)
Sc10ChartTypeData
;
if
(
!
pTypeData
)
nError
=
errOutOfMemory
;
else
{
lcl_ReadChartHeader
(
rStream
,
ChartHeader
);
lcl_ReadChartHeader
(
rStream
,
ChartHeader
);
//! altes Metafile verwenden ??
//! altes Metafile verwenden ??
rStream
.
SeekRel
(
ChartHeader
.
Size
);
rStream
.
SeekRel
(
ChartHeader
.
Size
);
lcl_ReadChartSheetData
(
rStream
,
ChartSheetData
);
lcl_ReadChartSheetData
(
rStream
,
ChartSheetData
);
lcl_ReadChartTypeData
(
rStream
,
*
pTypeData
);
lcl_ReadChartTypeData
(
rStream
,
*
pTypeData
);
Rectangle
aRect
(
Point
(
nStartX
,
nStartY
),
Size
(
nSizeX
,
nSizeY
)
);
Rectangle
aRect
(
Point
(
nStartX
,
nStartY
),
Size
(
nSizeX
,
nSizeY
)
);
...
@@ -2372,6 +2416,7 @@ void Sc10Import::LoadObjects()
...
@@ -2372,6 +2416,7 @@ void Sc10Import::LoadObjects()
delete
pTypeData
;
delete
pTypeData
;
}
}
}
break
;
break
;
default
:
default
:
nError
=
errUnknownFormat
;
nError
=
errUnknownFormat
;
...
...
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