Re[4]: wxWidgets-3.2.4 non-backwards compatibility with 3.2.2.1

Vadim Zeitlin <[email protected]>
Newsgroups gmane.comp.lib.wxwindows.general
Message-ID <[email protected]>
On Sun, 25 Feb 2024 07:15:35 -0800 (PST) Mike Rossiter wrote:

MR> Dan Dickey has tracked the problem down to the define wxHAS_RVALUE_REF. Not 
MR> present in wxWidgets-3.2.2.1, I think.

 Hello,

 Thanks for tracking this down! The important part is this one:

> The import name shipdriver_pi.dll is seeking is "(__declspec(dllimport) public: class wxString & __thiscall wxString::operator=(class wxString &&))".

and it shows that we must be exporting wxString move assignment operator from the 3.2.4 DLL but (of course) not from 3.2.2 one, where it hadn't been defined.

 I have to admit that I don't understand why isn't the compiler inlining this (very simple) function, as I'd expect it to, my thinking when backporting move-related changes to wx 3.2 was that they should be ABI-compatible because all the functions should be always inlined, but this clearly isn't the case and so we have to fix it.

 My proposed fix is in https://github.com/wxWidgets/wxWidgets/pull/24357 and your problem should be fixed if you

1. Cherry pick the first commit from it (https://github.com/wxWidgets/wxWidgets/pull/24357/commits/54abbb3fc0b5563ef381e503f3791a4a60613d6d)
2. Define wxABI_VERSION=30202 when building your code.

 Please let me know if this works for you, TIA!
VZ

-- 
TT-Solutions: wxWidgets consultancy and technical support
              https://www.tt-solutions.com/
signature.asc (application/pgp-signature, 195 B)
-----BEGIN PGP SIGNATURE-----

iF0EABECAB0WIQQx+vLQdOwioQqkxtoG6kHeT2wehgUCZduF7gAKCRAG6kHeT2we
hk2OAJwPR2f7mDh8eerAkpsuHKde/2FmFACfecuIijlIGGAc6zmgHAiCCDW4rxw=
=cvY1
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.