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
0bb1d92c
Kaydet (Commit)
0bb1d92c
authored
Agu 23, 2014
tarafından
Matteo Casalin
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Avoid copying containers for local helper functions
Change-Id: I9ba47e8a53a37cbeb2e8d0e197094531edbaeb4c
üst
6327919b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
23 deletions
+24
-23
atrftn.cxx
sw/source/core/txtnode/atrftn.cxx
+24
-23
No files found.
sw/source/core/txtnode/atrftn.cxx
Dosyayı görüntüle @
0bb1d92c
...
@@ -40,13 +40,13 @@ namespace {
...
@@ -40,13 +40,13 @@ namespace {
/// Get a sorted list of the used footnote reference numbers.
/// Get a sorted list of the used footnote reference numbers.
/// @param[in] rDoc The active document.
/// @param[in] rDoc The active document.
/// @param[in] pExclude A footnote whose reference number should be excluded from the set.
/// @param[in] pExclude A footnote whose reference number should be excluded from the set.
/// @param[out] rUsedRef The set of used reference numbers.
/// @param[out] rInvalid A returned list of all items that had an invalid reference number.
/// @param[out] rInvalid A returned list of all items that had an invalid reference number.
/// @returns The set of used reference numbers.
static
void
lcl_FillUsedFtnRefNumbers
(
SwDoc
&
rDoc
,
static
std
::
set
<
sal_uInt16
>
lcl_GetUsedFtnRefNumbers
(
SwDoc
&
rDoc
,
SwTxtFtn
*
pExclude
,
SwTxtFtn
*
pExclude
,
std
::
set
<
sal_uInt16
>
&
rUsedRef
,
std
::
vector
<
SwTxtFtn
*>
&
rInvalid
)
std
::
vector
<
SwTxtFtn
*>
&
rInvalid
)
{
{
std
::
set
<
sal_uInt16
>
aArr
;
SwFtnIdxs
&
ftnIdxs
=
rDoc
.
GetFtnIdxs
();
SwFtnIdxs
&
ftnIdxs
=
rDoc
.
GetFtnIdxs
();
rInvalid
.
clear
();
rInvalid
.
clear
();
...
@@ -62,11 +62,10 @@ namespace {
...
@@ -62,11 +62,10 @@ namespace {
}
}
else
else
{
{
aArr
.
insert
(
pTxtFtn
->
GetSeqRefNo
()
);
rUsedRef
.
insert
(
pTxtFtn
->
GetSeqRefNo
()
);
}
}
}
}
}
}
return
aArr
;
}
}
/// Check whether a requested reference number is available.
/// Check whether a requested reference number is available.
...
@@ -84,13 +83,13 @@ namespace {
...
@@ -84,13 +83,13 @@ namespace {
}
}
/// Get the first few unused sequential reference numbers.
/// Get the first few unused sequential reference numbers.
/// @param[out] rLowestUnusedNums The lowest unused sequential reference numbers.
/// @param[in] rUsedNums The set of used sequential reference numbers.
/// @param[in] rUsedNums The set of used sequential reference numbers.
/// @param[in] numRequired The number of reference number required.
/// @param[in] numRequired The number of reference number required.
/// @returns The lowest unused sequential reference numbers.
static
void
lcl_FillUnusedSeqRefNums
(
std
::
vector
<
sal_uInt16
>
&
rLowestUnusedNums
,
static
std
::
vector
<
sal_uInt16
>
lcl_GetUnusedSeqRefNums
(
std
::
set
<
sal_uInt16
>
&
rUsedNums
,
const
std
::
set
<
sal_uInt16
>
&
rUsedNums
,
size_t
numRequired
)
size_t
numRequired
)
{
{
std
::
vector
<
sal_uInt16
>
unusedNums
;
sal_uInt16
newNum
=
0
;
sal_uInt16
newNum
=
0
;
std
::
set
<
sal_uInt16
>::
iterator
it
;
std
::
set
<
sal_uInt16
>::
iterator
it
;
//Start by using numbers from gaps in rUsedNums
//Start by using numbers from gaps in rUsedNums
...
@@ -98,19 +97,17 @@ namespace {
...
@@ -98,19 +97,17 @@ namespace {
{
{
while
(
newNum
<
*
it
)
while
(
newNum
<
*
it
)
{
{
u
nusedNums
.
push_back
(
newNum
++
);
rLowestU
nusedNums
.
push_back
(
newNum
++
);
if
(
u
nusedNums
.
size
()
>=
numRequired
)
if
(
rLowestU
nusedNums
.
size
()
>=
numRequired
)
return
unusedNums
;
return
;
}
}
newNum
++
;
newNum
++
;
}
}
//Filled in all gaps. Fill the rest of the list with new numbers.
//Filled in all gaps. Fill the rest of the list with new numbers.
while
(
u
nusedNums
.
size
()
<
numRequired
)
while
(
rLowestU
nusedNums
.
size
()
<
numRequired
)
{
{
u
nusedNums
.
push_back
(
newNum
++
);
rLowestU
nusedNums
.
push_back
(
newNum
++
);
}
}
return
unusedNums
;
}
}
}
}
...
@@ -504,11 +501,13 @@ sal_uInt16 SwTxtFtn::SetSeqRefNo()
...
@@ -504,11 +501,13 @@ sal_uInt16 SwTxtFtn::SetSeqRefNo()
if
(
pDoc
->
IsInReading
()
)
if
(
pDoc
->
IsInReading
()
)
return
USHRT_MAX
;
return
USHRT_MAX
;
std
::
set
<
sal_uInt16
>
aUsedNums
;
std
::
vector
<
SwTxtFtn
*>
badRefNums
;
std
::
vector
<
SwTxtFtn
*>
badRefNums
;
std
::
set
<
sal_uInt16
>
aUsedNums
=
::
lcl_GetUsedFtnRefNumbers
(
*
pDoc
,
thi
s
,
badRefNums
);
::
lcl_FillUsedFtnRefNumbers
(
*
pDoc
,
this
,
aUsedNum
s
,
badRefNums
);
if
(
::
lcl_IsRefNumAvailable
(
aUsedNums
,
m_nSeqNo
)
)
if
(
::
lcl_IsRefNumAvailable
(
aUsedNums
,
m_nSeqNo
)
)
return
m_nSeqNo
;
return
m_nSeqNo
;
std
::
vector
<
sal_uInt16
>
unused
=
::
lcl_GetUnusedSeqRefNums
(
aUsedNums
,
1
);
std
::
vector
<
sal_uInt16
>
unused
;
::
lcl_FillUnusedSeqRefNums
(
unused
,
aUsedNums
,
1
);
return
m_nSeqNo
=
unused
[
0
];
return
m_nSeqNo
=
unused
[
0
];
}
}
...
@@ -516,13 +515,15 @@ sal_uInt16 SwTxtFtn::SetSeqRefNo()
...
@@ -516,13 +515,15 @@ sal_uInt16 SwTxtFtn::SetSeqRefNo()
/// @param[in] rDoc The document to be processed.
/// @param[in] rDoc The document to be processed.
void
SwTxtFtn
::
SetUniqueSeqRefNo
(
SwDoc
&
rDoc
)
void
SwTxtFtn
::
SetUniqueSeqRefNo
(
SwDoc
&
rDoc
)
{
{
std
::
set
<
sal_uInt16
>
aUsedNums
;
std
::
vector
<
SwTxtFtn
*>
badRefNums
;
std
::
vector
<
SwTxtFtn
*>
badRefNums
;
std
::
set
<
sal_uInt16
>
aUsedNums
=
::
lcl_GetUsedFtnRefNumbers
(
rDoc
,
NULL
,
badRefNums
);
::
lcl_FillUsedFtnRefNumbers
(
rDoc
,
NULL
,
aUsedNums
,
badRefNums
);
std
::
vector
<
sal_uInt16
>
unused
=
::
lcl_GetUnusedSeqRefNums
(
aUsedNums
,
badRefNums
.
size
());
std
::
vector
<
sal_uInt16
>
aUnused
;
::
lcl_FillUnusedSeqRefNums
(
aUnused
,
aUsedNums
,
badRefNums
.
size
());
for
(
size_t
i
=
0
;
i
<
badRefNums
.
size
();
++
i
)
for
(
size_t
i
=
0
;
i
<
badRefNums
.
size
();
++
i
)
{
{
badRefNums
[
i
]
->
m_nSeqNo
=
u
nused
[
i
];
badRefNums
[
i
]
->
m_nSeqNo
=
aU
nused
[
i
];
}
}
}
}
...
...
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