To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=67774
------- Additional comments from [EMAIL PROTECTED] Tue Dec 19 14:59:51 -0800
2006 -------
The subroutine
Sub assign(s,d)
d.DataArray = s.DataArray
End Sub
Generates the assembly
STMNT 19,0 (For-Level: 0)
assign:
STMNT 21,0 (For-Level: 0)
PARAM 2; Object
ELEM DataArray; Variant
PARAM 1; Object
ELEM DataArray; Variant
PUT
STMNT 22,0 (For-Level: 0)
LEAVE
As fas as I can see, the problem is in sbxvalue.cxx. The routine
SbxValue::Put( const SbxValues& rVal ) contains the test to abort
the assignment if the objects are identical:
case SbxOBJECT:
if( !p->IsFixed() || p->aData.eType == SbxOBJECT )
{
// ist schon drin
if( p->aData.eType == SbxOBJECT && p->aData.pObj == rVal.pObj )
break;
This is clearly flawed in some circumstances: break if "ist schon drin" is
the wrong thing to do in the case:
d.DataArray = s.DataArray
where d and s point to the same object.
---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]