cvs commit: ports/editors/openoffice-devel/files patch-bridges+source+cpp_uno+gcc3_freebsd_intel

Martin Blapp mbr at FreeBSD.org
Thu Mar 27 14:13:28 PST 2003


mbr         2003/03/27 14:13:25 PST

  FreeBSD ports repository

  Modified files:
    editors/openoffice-devel/files 
                                   patch-bridges+source+cpp_uno+gcc3_freebsd_intel 
  Log:
  Depending on how a compiler generates code (e.g., GCC 3.2.2 vs. GCC
  3.0.1), a bug in the gcc3_linux_intel UNO bridge is revealed:  If a
  C/C++ function returns a complex object (class, struct, union), the 386
  ABI specifies that the caller pushes the address for that object on the
  stack, and the callee removes it from the stack.  The code in the UNO
  bridge (callVirtualMethod in
  bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx) erroneously assumes
  that the callee does *not* remove the address from the stack, corrupting
  the stack.
  
  We use the same bridge code as linux does for gcc3.x. So this fix also
  works for us.
  
  Submitted by:   Stephan Bergmann <stephan.bergmann at sun.com>
  
  Revision  Changes    Path
  1.3       +41 -0     ports/editors/openoffice-devel/files/patch-bridges+source+cpp_uno+gcc3_freebsd_intel


More information about the cvs-all mailing list