On Tue, Feb 10, 2026 at 3:57 AM Damjan Jovanovic <[email protected]> wrote:
> > > On Sun, Feb 8, 2026 at 11:58 AM Pedro Lino via dev < > [email protected]> wrote: > >> Hi Damjan >> >> > On 02/08/2026 9:32 AM WET Damjan Jovanovic <[email protected]> wrote: >> > >> > >> > Hi >> > >> > I finally have some good news. >> > >> >> <snip> >> >> > The test still crashes later on from something else, but it gets much >> > further before that crash. >> > >> > In the next few days, I'll revisit the 127 commits I've got in my local >> > amd64-bridge branch, clean them up, and push some of them to >> > the windows-amd64 branch (from which it has been forked off). That >> should >> > make further debugging easier, and allow others to join the fun. >> > >> > There is still that next crash and any others to fix, then the exception >> > handling to get working, but the fact it's now successfully calling >> several >> > complex methods, with many parameters of various types and complex >> return >> > types, and getting the right results, is highly encouraging. A Win64 >> > OpenOffice no longer seems that far away :-). >> >> Thank you for your persistence and for the good news! >> >> Looking forward to help with debugging and testing a Win x86-64 build! >> >> All the best, >> Pedro >> >> > Thank you. > > With extensive logging, I found and fixed another major bug. When complex > types were being returned, the first 8 bytes were getting corrupted, > because in call.asm function callVirtualMethod, for complex types, I was > writing the contents of the RAX register into *pRegisterReturn, something > that should only be done for simple types, as that memory already contains > the value to return for complex types. > > Now all calling and returning tests seem to work :-), and the test is only > crashing during exception handling. A little more logging and testing that, > and we could have a perfectly working Windows/amd64 UNO bridge, and maybe > even the Win64 OpenOffice starting up! > > Regards > Damjan > > Even exception handling is now largely working. The problem was the assembly language function, callVirtualMethod, which needed stupid MASM "pseudo-ops" and the function "epilog" changed to use only the allowed instructions. This is because Win64 exception handling apparently needs tons of static info to unwind the stack properly during exceptions, even for assembly language functions that merely pass exceptions through and never throw or catch them. In fact, of the 4 test functions in TestBridgeImpl::run(), raiseException() and raiseOneWayException() are now getting assertion errors and failing instead of crashing, and most of performTest() is passing. The only parts of performTest() that crash are the same part that also crashes on OS/2 and i386 FreeBSD, and then some multiple inheritance tests. Maybe the Windows/amd64 UNO bridge is already good enough to run OpenOffice? Regards Damjan
