Re: [E-devel] Crash using C++ Layout signal API
Cedric Bail <[email protected]>
| Newsgroups | gmane.comp.window-managers.enlightenment.devel |
|---|---|
| Message-ID | <I_hl8aKk_-ed_NY7h334ZigQ3qcqZcyuIXrfLi-h2BBFNJnoLpTqlfMWhavB51Q5rJEuoHWIVW4ebYC2AQVIaR4Bp5TgXaogXdbhTp9PF0A=@ddlm.me> |
On Wednesday, June 23rd, 2021 at 3:53 PM, Andreas Volz <[email protected]> wrote: > Am 23.06.21 um 18:02 schrieb Cedric Bail: > > On Tuesday, June 22nd, 2021 at 11:36 PM, Andreas Volz [email protected] wrote: > > > Hello together, > > > > > after some waiting time I would like to ask here if some other user > > > could at least verify the same crash with C++ API that I described here: > > > > > https://phab.enlightenment.org/T8943 > > > > > If I'm not strongly misusing the API than it's a very basic error. Just > > > loading an Edje file into a Layout. > > > > I vaguely remember discussion about this issue. I don't think we actually support function pointer in auto generated code, except for eo callback mechanism, due to some memory lifecycle uncertainty. And it kind of match what your bug report says. > > > > > Would be good to know someone else does see the same. > > > Do you know a workaround to come around this? Maybe use another C++ > > > compatible API / mix with C API to continue work on my application? > > > regards > > > > I remember that the workaround would be to switch to use the C API instead of the C++ one as I think we do have a smart pointer trick that allow you to directly use the C pointer and C function from the C++ object. > > To make it explicit as question. You suggest to not use the C++ API at > all in my application or just not for this use case? Not use the C++ API that does take a function as a parameter except for efl_event. > Is it a good idea to mix usage of C and C++ API as long as it's not > fully stable and then adapt later to full C++ usage? Do you know an > example how to access the C API object? The C++ API is header only, directly use the C API under it and the this pointer of a C++ object is actually the Eo* resulting in no overhead and no ABI in using the C++ binding. It does also means you can safely go from C to C++ and back. When I played with it last time you could just pass a C++ Eo object to a C function and the cast would be done magically. If it isn't done magically anymore, I think there is a _eo_ref() on the C++ object to get the Eo* pointer. Cedric _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
publickey - [email protected] - 0x1869A77F.asc
(application/pgp-keys, 3.1 KB)
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: OpenPGP.js v4.10.10 Comment: https://openpgpjs.org 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 euetbYKKxbVhw2klVROuJm9I =ydAQ -----END PGP PUBLIC KEY BLOCK-----
signature.asc
(application/pgp-signature, 855 B)
-----BEGIN PGP SIGNATURE----- Version: ProtonMail wsFzBAEBCAAGBQJg07hrACEJEL4jxg5iFpa6FiEEGGmnf5t6O9bwEOP4viPG DmIWlrq9kQ/+JKE0XOMjlWxCDn3s1PvmSWFlPclMKTA5xd9jUX5+Ck732TP0 HewRvVZH8EfunDh1L9VEwiQvNktrXz3Np8WGONJBuOMxEEQ9akgVJBI0voBL trJYS2aSzzfKuiIv7E1DsylJtz3YLec7qhD23CaoFptq+TY58+kOqsfS8Dr5 3lm/w1FvtbPfEyULDBCU/g/ssM+37oKQLCuAxhX209IlHZNev/Oqz9P0g7Ps 2MeQRn9O4G9lI0qxqs90fFomM46Q3j51AZ+JKnXfmc6vtCN1BBPUMu3Kne06 Wnd+oV13Hf9lO6+Pig14Yc1KWll6tgNnXzHpfOPVzEhDov2rOhYOXwmJpi9M tBJmmorlb5YIgpT2FywJTTkI3iODMDkNa7Aapv4zzLogaY6Z7Z8LhRH70sef aSXuWoblGdaf5BUNoitTukppzgL41EOfOYCWlgH8iz+CTNCLG15p1y15nS6d dvWXhV5yJCUXtk5IRNIdANy4uCcQPqX0eSlEWMNeMqRlEFsS1kHsEB9l7U6l 727LLE5AyM4SNA7eOeHw/i5jiQSbMqDMYDGxtWpdb4yioemBYOL4F2lRA9z8 Nj2YCHEikCBBS3UAFbrpuMaT/EV9bF5YSJYjXNh+E/HBPet6uwHF1yVHcfwY wdBQ26sQNyOnxab1o4hSEW/OsW0LHn2/+aI= =/IIk -----END PGP SIGNATURE-----