On Sat, Mar 30, 2013 at 08:07:15AM -0700, julien2412 [via Document Foundation Mail Archive] wrote:
I noticed that a variable wasn't incremented in this loop:
1772 void OResultSet::clearInsertRow()
1773 {
...
1778 for(sal_Int32 nPos = 0;aIter != aEnd;++aIter,++nPos)
1779 {
1780 ORowSetValueDecoratorRef& rValue = (*aIter);
1781 if ( rValue->isBound() )
1782 {
1783 (m_aRow->get())[nPos]->setValue( (*aIter)->getValue() );
1784 }
1785 rValue->setBound(nPos == 0);
1786 rValue->setModified(sal_False);
1787 rValue->setNull();
1788 }
1789 }
See
http://opengrok.libreoffice.org/xref/core/connectivity/source/drivers/file/FResultSet.cxx#1772
Which variable is not incremented? I don't see what is not
incremented; both aIter and nPos are incremented, by the statement
"++aIter,++nPos"
I searched about "clearInsertRow" and found this method:
1638 void ORowSetCache::clearInsertRow()
1639 {
1640 // we don't unbound the bookmark column
1641 if ( m_aInsertRow != m_pInsertMatrix->end() && m_aInsertRow->is() )
1642 {
1643 ORowSetValueVector::Vector::iterator aIter = (*m_aInsertRow)->get().begin()+1;
1644 ORowSetValueVector::Vector::iterator aEnd = (*m_aInsertRow)->get().end();
1645 for(;aIter != aEnd;++aIter)
1646 {
1647 aIter->setBound(sal_False);
1648 aIter->setModified(sal_False);
1649 aIter->setNull();
1650 }
1651 }
1652 }
http://opengrok.libreoffice.org/xref/core/dbaccess/source/core/api/RowSetCache.cxx#1638
I wonder if it's normal that these functions are different. For example,
should we consider a bookmark column in first method?
Well, one is in a specific driver and the other in a generic wrapper
/ cache, so the first may well make things specific to the underlying
database...
Specifically, well, the first "treats" the bookmark column (which is
always and by definition the column 0; the normal columns are numbered
starting from 1), and sets it to bound.
The second just skips the bookmark column.
I don't immediately see anything wrong with the difference, but I
cannot explain it either, so basically I'm not sure there.
Then if it's ok, should we increment nPos in first one (...)
nPos is incremented.
--
Lionel
--
View this message in context:
http://nabble.documentfoundation.org/About-clearInsertRow-connectivity-and-dbaccess-module-tp4047094p4047882.html
Sent from the Dev mailing list archive at Nabble.com.
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.