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]

Reply via email to