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
a3c7602b
Kaydet (Commit)
a3c7602b
authored
Nis 21, 2012
tarafından
Arnaud Versini
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Use boost::ptr_vector in WW8_WrPct instead of SV_DECL_PTRARR_DEL
üst
99b875ae
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
28 deletions
+23
-28
wrtww8.cxx
sw/source/filter/ww8/wrtww8.cxx
+20
-26
wrtww8.hxx
sw/source/filter/ww8/wrtww8.hxx
+3
-2
No files found.
sw/source/filter/ww8/wrtww8.cxx
Dosyayı görüntüle @
a3c7602b
...
@@ -228,10 +228,6 @@ public:
...
@@ -228,10 +228,6 @@ public:
SV_IMPL_PTRARR
(
WW8_WrFkpPtrs
,
WW8_FkpPtr
)
SV_IMPL_PTRARR
(
WW8_WrFkpPtrs
,
WW8_FkpPtr
)
typedef
WW8_WrPc
*
WW8_WrPcPtr
;
SV_DECL_PTRARR_DEL
(
WW8_WrPcPtrs
,
WW8_WrPcPtr
,
4
)
SV_IMPL_PTRARR
(
WW8_WrPcPtrs
,
WW8_WrPcPtr
)
static
void
WriteDop
(
WW8Export
&
rWrt
)
static
void
WriteDop
(
WW8Export
&
rWrt
)
{
{
WW8Dop
&
rDop
=
*
rWrt
.
pDop
;
WW8Dop
&
rDop
=
*
rWrt
.
pDop
;
...
@@ -1153,14 +1149,13 @@ WW8_FC WW8_WrFkp::GetEndFc() const
...
@@ -1153,14 +1149,13 @@ WW8_FC WW8_WrFkp::GetEndFc() const
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
WW8_WrPct
::
WW8_WrPct
(
WW8_FC
nfcMin
,
bool
bSaveUniCode
)
WW8_WrPct
::
WW8_WrPct
(
WW8_FC
nfcMin
,
bool
bSaveUniCode
)
:
pPcts
(
new
WW8_WrPcPtrs
),
nOldFc
(
nfcMin
),
bIsUni
(
bSaveUniCode
)
:
nOldFc
(
nfcMin
),
bIsUni
(
bSaveUniCode
)
{
{
AppendPc
(
nOldFc
,
bIsUni
);
AppendPc
(
nOldFc
,
bIsUni
);
}
}
WW8_WrPct
::~
WW8_WrPct
()
WW8_WrPct
::~
WW8_WrPct
()
{
{
delete
pPcts
;
}
}
// Piece fuellen und neues Piece erzeugen
// Piece fuellen und neues Piece erzeugen
...
@@ -1169,10 +1164,10 @@ void WW8_WrPct::AppendPc(WW8_FC nStartFc, bool bIsUnicode)
...
@@ -1169,10 +1164,10 @@ void WW8_WrPct::AppendPc(WW8_FC nStartFc, bool bIsUnicode)
WW8_CP
nStartCp
=
nStartFc
-
nOldFc
;
// Textbeginn abziehen
WW8_CP
nStartCp
=
nStartFc
-
nOldFc
;
// Textbeginn abziehen
if
(
!
nStartCp
)
if
(
!
nStartCp
)
{
{
if
(
0
!=
pPcts
->
Count
()
)
if
(
!
aPcts
.
empty
()
)
{
{
OSL_ENSURE
(
1
==
pPcts
->
Count
(),
"Leeres Piece !!"
);
OSL_ENSURE
(
1
==
aPcts
.
size
(),
"Leeres Piece !!"
);
pPcts
->
DeleteAndDestroy
(
pPcts
->
Count
()
-
1
,
1
);
aPcts
.
pop_back
(
);
}
}
}
}
...
@@ -1188,11 +1183,11 @@ void WW8_WrPct::AppendPc(WW8_FC nStartFc, bool bIsUnicode)
...
@@ -1188,11 +1183,11 @@ void WW8_WrPct::AppendPc(WW8_FC nStartFc, bool bIsUnicode)
nStartFc
|=
0x40000000
;
// Vorletztes Bit setzen fuer !Unicode
nStartFc
|=
0x40000000
;
// Vorletztes Bit setzen fuer !Unicode
}
}
if
(
pPcts
->
Count
()
)
if
(
!
aPcts
.
empty
()
)
nStartCp
+=
pPcts
->
GetObject
(
pPcts
->
Count
()
-
1
)
->
GetStartCp
();
nStartCp
+=
aPcts
.
back
().
GetStartCp
();
WW8_WrPc
Ptr
pPc
=
new
WW8_WrPc
(
nStartFc
,
nStartCp
);
WW8_WrPc
*
pPc
=
new
WW8_WrPc
(
nStartFc
,
nStartCp
);
pPcts
->
Insert
(
pPc
,
pPcts
->
Count
()
);
aPcts
.
push_back
(
pPc
);
bIsUni
=
bIsUnicode
;
bIsUni
=
bIsUnicode
;
}
}
...
@@ -1202,31 +1197,30 @@ void WW8_WrPct::WritePc( WW8Export& rWrt )
...
@@ -1202,31 +1197,30 @@ void WW8_WrPct::WritePc( WW8Export& rWrt )
{
{
sal_uLong
nPctStart
;
sal_uLong
nPctStart
;
sal_uLong
nOldPos
,
nEndPos
;
sal_uLong
nOldPos
,
nEndPos
;
sal_uInt16
i
;
boost
::
ptr_vector
<
WW8_WrPc
>::
iterator
aIter
;
nPctStart
=
rWrt
.
pTableStrm
->
Tell
();
// Beginn Piece-Table
nPctStart
=
rWrt
.
pTableStrm
->
Tell
();
// Beginn Piece-Table
*
rWrt
.
pTableStrm
<<
(
char
)
0x02
;
// Statusbyte PCT
*
rWrt
.
pTableStrm
<<
(
char
)
0x02
;
// Statusbyte PCT
nOldPos
=
nPctStart
+
1
;
// Position merken
nOldPos
=
nPctStart
+
1
;
// Position merken
SwWW8Writer
::
WriteLong
(
*
rWrt
.
pTableStrm
,
0
);
// Laenge folgt
SwWW8Writer
::
WriteLong
(
*
rWrt
.
pTableStrm
,
0
);
// Laenge folgt
for
(
i
=
0
;
i
<
pPcts
->
Count
();
++
i
)
// Bereiche
for
(
aIter
=
aPcts
.
begin
();
aIter
!=
aPcts
.
end
();
++
aIter
)
// Bereiche
SwWW8Writer
::
WriteLong
(
*
rWrt
.
pTableStrm
,
SwWW8Writer
::
WriteLong
(
*
rWrt
.
pTableStrm
,
pPcts
->
GetObject
(
i
)
->
GetStartCp
()
);
aIter
->
GetStartCp
()
);
// die letzte Pos noch errechnen
// die letzte Pos noch errechnen
sal_uLong
nStartCp
=
rWrt
.
pFib
->
fcMac
-
nOldFc
;
sal_uLong
nStartCp
=
rWrt
.
pFib
->
fcMac
-
nOldFc
;
if
(
bIsUni
)
if
(
bIsUni
)
nStartCp
>>=
1
;
// Bei Unicode Anzahl der Zeichen / 2
nStartCp
>>=
1
;
// Bei Unicode Anzahl der Zeichen / 2
nStartCp
+=
pPcts
->
GetObject
(
i
-
1
)
->
GetStartCp
();
nStartCp
+=
aPcts
.
back
().
GetStartCp
();
SwWW8Writer
::
WriteLong
(
*
rWrt
.
pTableStrm
,
nStartCp
);
SwWW8Writer
::
WriteLong
(
*
rWrt
.
pTableStrm
,
nStartCp
);
// Pieceverweise
// Pieceverweise
for
(
i
=
0
;
i
<
pPcts
->
Count
();
++
i
)
for
(
aIter
=
aPcts
.
begin
();
aIter
!=
aPcts
.
end
();
++
aIter
)
{
{
WW8_WrPcPtr
pPc
=
pPcts
->
GetObject
(
i
);
SwWW8Writer
::
WriteShort
(
*
rWrt
.
pTableStrm
,
aIter
->
GetStatus
());
SwWW8Writer
::
WriteLong
(
*
rWrt
.
pTableStrm
,
aIter
->
GetStartFc
());
SwWW8Writer
::
WriteShort
(
*
rWrt
.
pTableStrm
,
pPc
->
GetStatus
());
SwWW8Writer
::
WriteLong
(
*
rWrt
.
pTableStrm
,
pPc
->
GetStartFc
());
SwWW8Writer
::
WriteShort
(
*
rWrt
.
pTableStrm
,
0
);
// PRM=0
SwWW8Writer
::
WriteShort
(
*
rWrt
.
pTableStrm
,
0
);
// PRM=0
}
}
...
@@ -1243,19 +1237,19 @@ void WW8_WrPct::WritePc( WW8Export& rWrt )
...
@@ -1243,19 +1237,19 @@ void WW8_WrPct::WritePc( WW8Export& rWrt )
void
WW8_WrPct
::
SetParaBreak
()
void
WW8_WrPct
::
SetParaBreak
()
{
{
OSL_ENSURE
(
pPcts
->
Count
(),
"SetParaBreak : aPcts.Count = 0
"
);
OSL_ENSURE
(
!
aPcts
.
empty
(),
"SetParaBreak : aPcts.empty()
"
);
pPcts
->
GetObject
(
pPcts
->
Count
()
-
1
)
->
SetStatus
();
aPcts
.
back
().
SetStatus
();
}
}
WW8_CP
WW8_WrPct
::
Fc2Cp
(
sal_uLong
nFc
)
const
WW8_CP
WW8_WrPct
::
Fc2Cp
(
sal_uLong
nFc
)
const
{
{
OSL_ENSURE
(
nFc
>=
(
sal_uLong
)
nOldFc
,
"FilePos liegt vorm letzten Piece"
);
OSL_ENSURE
(
nFc
>=
(
sal_uLong
)
nOldFc
,
"FilePos liegt vorm letzten Piece"
);
OSL_ENSURE
(
pPcts
->
Count
(),
"Fc2Cp noch kein Piece vorhanden"
);
OSL_ENSURE
(
!
aPcts
.
empty
(),
"Fc2Cp noch kein Piece vorhanden"
);
nFc
-=
nOldFc
;
nFc
-=
nOldFc
;
if
(
bIsUni
)
if
(
bIsUni
)
nFc
/=
2
;
nFc
/=
2
;
return
nFc
+
pPcts
->
GetObject
(
pPcts
->
Count
()
-
1
)
->
GetStartCp
();
return
nFc
+
aPcts
.
back
().
GetStartCp
();
}
}
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
...
...
sw/source/filter/ww8/wrtww8.hxx
Dosyayı görüntüle @
a3c7602b
...
@@ -112,11 +112,12 @@ class WW8_WrPlcAnnotations;
...
@@ -112,11 +112,12 @@ class WW8_WrPlcAnnotations;
class
MSWordSections
;
class
MSWordSections
;
class
WW8_WrPlcTxtBoxes
;
class
WW8_WrPlcTxtBoxes
;
class
WW8_WrPct
;
// Verwaltung
class
WW8_WrPct
;
// Verwaltung
class
WW8_WrPcPtrs
;
class
WW8_WrtBookmarks
;
class
WW8_WrtBookmarks
;
class
WW8_WrtRedlineAuthor
;
class
WW8_WrtRedlineAuthor
;
class
SvxMSExportOLEObjects
;
class
SvxMSExportOLEObjects
;
class
SwMSConvertControls
;
class
SwMSConvertControls
;
class
WW8_WrPc
;
namespace
com
{
namespace
sun
{
namespace
star
{
namespace
embed
{
namespace
com
{
namespace
sun
{
namespace
star
{
namespace
embed
{
class
XEmbeddedObject
;
class
XEmbeddedObject
;
}
}
}
}
}
}
}
}
...
@@ -264,7 +265,7 @@ public:
...
@@ -264,7 +265,7 @@ public:
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
class
WW8_WrPct
class
WW8_WrPct
{
{
WW8_WrPcPtrs
*
p
Pcts
;
boost
::
ptr_vector
<
WW8_WrPc
>
a
Pcts
;
WW8_FC
nOldFc
;
WW8_FC
nOldFc
;
bool
bIsUni
;
bool
bIsUni
;
public
:
public
:
...
...
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