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