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

xsFNBFlK+VQBEADecBrtzIUGjgOa9m09GjP7v841b6lLVNLhMi44fonnnFnX
Sn1U2R3SxclhMnrp9JwSd09REdljpwl2tgZbtBNpNgn9anstNecW9bnSr/PF
3doX2/sHwBqOzL767BWMQ4y6RWKmGz8Lo0z0nxE5tGHXFoPSiceWV0Xm62AV
Tx5y2DICiKkWPZWbX0LRDhPqIMxQF0G9ti889v6MIHIIpArZY8uU8fu0SEBg
c3q4LZiRske5+afwqnEdmTrW8Qt9z+dbKvmf4aZHBP9ngcHHQEwJoBqppUgi
Zusf386I7+f8wnCuazDd06Weg5CsJXP2opTHHNT2Ba8aH8b3UH13k9670Xiq
LdQpfgoPK5IH8GTqzTkrU8bzYlW4El0jYaNj4Py4riBLKP97Yrhr0fyQ3Jb1
sB0gwvvg0chzGhi7tJOOhb0R/es6XHVSQfigZfZgnY7+5kAQ7674aXnulHZM
wQqz4fn+w1FVigCQCN0cGon6HIbO4X5mjQ6vqid0rFQMtrHNSWSXLgTg0/2H
X6KdIBF+D5fKxeACCRJZZeWIG/LfUBZ73Pl0vGGWMcAfC9eZrW5Qpi25EMYZ
60kCb5jqbGzek2mpVo6MpOr6YCmj/eeuX3jL+0cuqGQsuNU8ik8DWjhhTE6N
xCnPzJ3s/SCttOARrfvf/ape6AoPJVE6MtAv8QARAQABzR9jZWRyaWNAZGRs
bS5tZSA8Y2VkcmljQGRkbG0ubWU+wsF/BBABCAApBQJZSvlVBgsJBwgDAgkQ
viPGDmIWlroEFQgKAgMWAgECGQECGwMCHgEACgkQviPGDmIWlrrIWw//TBY5
friPKPoxwvfKwh+Q6DkRHXkshCXrsUuUOnUkgIXOCANZLsGUisyrTwecvyYu
i1HxnjA36YPCIQDunQ9XqZFxXXf7KLEQFxzDTEaqqns8Dlrw7SNdskaiy3vI
inhmmym1sVe0MHsi32p5K182yGbphYAPlcXJvGObRdcrH2mmM1AjKDuuZIKS
9/iUmWoYKDgjpkMpi6WAmM6T8bzEZQ062oWBNn/NouPv5qFq+Ydzgd3kvs7P
r4+7IuYJG0a4HuaKRHmpbkDJfqHM20RKXA3635U7ZFp6PfM0auLtP61XLKZJ
9WAG/Km4rUKXfK2C0hPKQcmCj1hl/B+ySl9bp+CnJkGV3bXqPwwH10H20Sn/
132v0Zut6kFiYOv9bpGCG/FrAvY9z4sC1rHgeShh+E+Y7drABkQlgOQ7dF9D
aKvDhYgwtUWhqiy4B+adKzDfCidGHbaWEa4B7pDB2AulKN2J8Gy1GqJb2RJx
fXp2N97eDHnv7erVg5nmePiYUwhvRGgDyohnBFgBB4qRyvqsZrZF/8LFi7ju
YEBMiv2AJ/KS2zBreZuyV6wTP0ba63GNrSiyYBD0OJ0E598elaBkTfqxGOwE
1q9IoUd4X68jCxV/fDBYuzc674zG6qJaNBHlNMU6bxFspEN7LX+6gVi2rAYR
MlpeNaQqkVTxcMcYdqfOwU0EWUr5VAEQAPWUnzLS5qTeF+4S4ni74vTJsHbG
9nfY+Y2v5wAjnH43dHz5zAYuPQtZ0L+WJ4kKgiVkFhEVdXkC3xHXDJz5P1HD
6PR6IDDDJiPJfwNUUh8XGKG0ShlqC8x24xqaGd93ktG7mq3VVTAupnkQwhWk
/vQkoJLjFmmX5wuXnXZBgaNjvxnC8nKaqfvcwucsXy9grOZekpTjOG5UXI9E
YcQBinaVVybBkU3z3njSDKW3aCJglPoobMtLQgjqr4Ij1akhql82sr4Ekrk5
zOSZicUYbgCyl42pk2vlCeEaGHd90QCRnrE1PcX7IhbjBtZw47gxBk5ICHv6
SdokMQsmMw0Ux9mngF7duOM5CCL3WHwng9Jss9NSC9sdFeusC57bBop+vas2
TnT56ulNmvhm685sRVsacBC3/FTJMEd6Y4c3IsbPtoyW3rmmaM3Jv0Ftoo/z
1C85ONa7QoIgbD/KzvdqvX8mH7uINaycgAzcKGN5T8wuNPHTki3gDgU+b4Fj
liXUI15LVLzyEC2b+qlNfARqCTwcULDm0cONFWGMGBNVGGcENtFgl3Ec9UNy
jNmhMnzc1Ny+HA+4578de6GkOQyS44r0sjJgZ9lYfDdEhdvsHfjaxqNfx2cn
34SIyrBU65eUTxFk0tDPvdfTWS0cX00msST83vxD27Aiu6j8joICoQS/ABEB
AAHCwWkEGAEIABMFAllK+VYJEL4jxg5iFpa6AhsMAAoJEL4jxg5iFpa65vIP
/3HwHCSuSzwlHzAyoLIABGTk+OnKK5cn1TuWgkHiTPqH1RIwSi0R6hXX1U3D
20+dkxom90o/QEuXQt/RyU48TSN9qdGpHPRuxZ4xpKA/Nt2jOqZNmbdnEC+Q
EwICYKS4EnquplpQ9vQurgtPP0QHfDrTfFsHU6YS8fVBljTHjdG3p6EZhIax
meTFq62+nCEtkyASU4rdfnB3OVybVWwFmSmLz8OF7/nXzlyA6GOIu4kg8GKT
Uejn8/xa+e5sfUxmJuTIrXVxQMUKfA7mw38LZH0JBqZ+Yk3apu3g4kTxxdtP
QOhrh8JP5ufJrv0eOdTyEn1PlzugFnJyw3zk1wDCSdJyatyieQjdvXSZ5jkf
xjXaRtjn/Ljx52nRlypRy0K7Ih2M7ErS+8VjZKJPj4NQ2g3Rdtb0wG09Qi14
17RACndrtFQF21Lu8rz+xPF0Iw1aTe/6+f0WL3iE0XMDBX6yYomsL+1thMsF
tSR+7r1RWhmPk5tzPFNCG5uFkt7E70y76WOetxQcWj31QviSwyOtDn3pptA8
Q6NZfEJZoHBKDad3p1zmGBA643a7m1B9nXy4ZLAyo6sfGYkZ8umU5Ou/TGn/
+NJjEzM1/93M3aXn+TKO4CDRZwLJwbki+Ex+PuOWujQ0OEorv1YN/fDcjGI9
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-----
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.