[Libreoffice-commits] core.git: 2 commits - sc/source
Eike Rathke
erack at redhat.com
Wed Jul 19 18:14:53 UTC 2017
sc/source/core/data/conditio.cxx | 60 ++++++++++++++++++++++-----------------
1 file changed, 35 insertions(+), 25 deletions(-)
New commits:
commit 667aa6ade94a4dee441868d21db037e42c871932
Author: Eike Rathke <erack at redhat.com>
Date: Wed Jul 19 19:10:32 2017 +0200
Avoid temporary Date and normalization
Rather than possibly calculating Date=((Date=(Date+int))+int) with a
normalization involved for each operator+() force Date=(Date+(int+int))
Change-Id: I6c4b30749d138c0b041ffc9e37796b6f64b6d461
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index 9cdb73ea3196..3f83ea2de188 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -1649,8 +1649,8 @@ bool ScCondDateFormatEntry::IsValid( const ScAddress& rPos ) const
const DayOfWeek eDay = rActDate.GetDayOfWeek();
if( eDay != SUNDAY )
{
- Date aBegin(rActDate - 8 - static_cast<sal_Int32>(eDay));
- Date aEnd(rActDate - 2 - static_cast<sal_Int32>(eDay));
+ Date aBegin(rActDate - (8 + static_cast<sal_Int32>(eDay)));
+ Date aEnd(rActDate - (2 + static_cast<sal_Int32>(eDay)));
return aCellDate.IsBetween( aBegin, aEnd );
}
else
@@ -1666,8 +1666,8 @@ bool ScCondDateFormatEntry::IsValid( const ScAddress& rPos ) const
const DayOfWeek eDay = rActDate.GetDayOfWeek();
if( eDay != SUNDAY )
{
- Date aBegin(rActDate - 1 - static_cast<sal_Int32>(eDay));
- Date aEnd(rActDate + 5 - static_cast<sal_Int32>(eDay));
+ Date aBegin(rActDate - (1 + static_cast<sal_Int32>(eDay)));
+ Date aEnd(rActDate + (5 + static_cast<sal_Int32>(eDay)));
return aCellDate.IsBetween( aBegin, aEnd );
}
else
@@ -1682,8 +1682,8 @@ bool ScCondDateFormatEntry::IsValid( const ScAddress& rPos ) const
const DayOfWeek eDay = rActDate.GetDayOfWeek();
if( eDay != SUNDAY )
{
- return aCellDate.IsBetween( rActDate + 6 - static_cast<sal_Int32>(eDay),
- rActDate + 12 - static_cast<sal_Int32>(eDay) );
+ return aCellDate.IsBetween( rActDate + (6 - static_cast<sal_Int32>(eDay)),
+ rActDate + (12 - static_cast<sal_Int32>(eDay)) );
}
else
{
commit ef8f13e08bccb7c082d3c5b19cce8a7a63c0b2fa
Author: Eike Rathke <erack at redhat.com>
Date: Wed Jul 19 18:49:55 2017 +0200
Don't calculate GetDayOfWeek() thrice
Change-Id: Ia1f7689448f8a9ea9e5c1a6e3b1949ee2065c827
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index 3e9ec4c10b80..9cdb73ea3196 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -1645,40 +1645,50 @@ bool ScCondDateFormatEntry::IsValid( const ScAddress& rPos ) const
return true;
break;
case condformat::LASTWEEK:
- if( rActDate.GetDayOfWeek() != SUNDAY )
{
- Date aBegin(rActDate - 8 - static_cast<sal_Int32>(rActDate.GetDayOfWeek()));
- Date aEnd(rActDate - 2 - static_cast<sal_Int32>(rActDate.GetDayOfWeek()));
- return aCellDate.IsBetween( aBegin, aEnd );
- }
- else
- {
- Date aBegin(rActDate - 8);
- Date aEnd(rActDate - 1);
- return aCellDate.IsBetween( aBegin, aEnd );
+ const DayOfWeek eDay = rActDate.GetDayOfWeek();
+ if( eDay != SUNDAY )
+ {
+ Date aBegin(rActDate - 8 - static_cast<sal_Int32>(eDay));
+ Date aEnd(rActDate - 2 - static_cast<sal_Int32>(eDay));
+ return aCellDate.IsBetween( aBegin, aEnd );
+ }
+ else
+ {
+ Date aBegin(rActDate - 8);
+ Date aEnd(rActDate - 1);
+ return aCellDate.IsBetween( aBegin, aEnd );
+ }
}
break;
case condformat::THISWEEK:
- if( rActDate.GetDayOfWeek() != SUNDAY )
{
- Date aBegin(rActDate - 1 - static_cast<sal_Int32>(rActDate.GetDayOfWeek()));
- Date aEnd(rActDate + 5 - static_cast<sal_Int32>(rActDate.GetDayOfWeek()));
- return aCellDate.IsBetween( aBegin, aEnd );
- }
- else
- {
- Date aEnd( rActDate + 6);
- return aCellDate.IsBetween( rActDate, aEnd );
+ const DayOfWeek eDay = rActDate.GetDayOfWeek();
+ if( eDay != SUNDAY )
+ {
+ Date aBegin(rActDate - 1 - static_cast<sal_Int32>(eDay));
+ Date aEnd(rActDate + 5 - static_cast<sal_Int32>(eDay));
+ return aCellDate.IsBetween( aBegin, aEnd );
+ }
+ else
+ {
+ Date aEnd( rActDate + 6);
+ return aCellDate.IsBetween( rActDate, aEnd );
+ }
}
break;
case condformat::NEXTWEEK:
- if( rActDate.GetDayOfWeek() != SUNDAY )
- {
- return aCellDate.IsBetween( rActDate + 6 - static_cast<sal_Int32>(rActDate.GetDayOfWeek()), rActDate + 12 - static_cast<sal_Int32>(rActDate.GetDayOfWeek()) );
- }
- else
{
- return aCellDate.IsBetween( rActDate + 7, rActDate + 13 );
+ const DayOfWeek eDay = rActDate.GetDayOfWeek();
+ if( eDay != SUNDAY )
+ {
+ return aCellDate.IsBetween( rActDate + 6 - static_cast<sal_Int32>(eDay),
+ rActDate + 12 - static_cast<sal_Int32>(eDay) );
+ }
+ else
+ {
+ return aCellDate.IsBetween( rActDate + 7, rActDate + 13 );
+ }
}
break;
case condformat::LASTMONTH:
More information about the Libreoffice-commits
mailing list