Re: [Development] Reducing number of allocations in metacall argument marshalling

2014-01-16 Thread Olivier Goffart
On Wednesday 15 January 2014 13:42:01 Kuba Ober wrote: > Currently, the metacall arguments are marshaled by copy-constructing them in > their own heap blocks. The addresses to the copies are deposited in an > array-of-void*, passed as the args argument to QObject::qt_metacall etc. > > So there are

Re: [Development] Reducing number of allocations in metacall argument marshalling

2014-01-15 Thread Thiago Macieira
On quarta-feira, 15 de janeiro de 2014 13:42:01, Kuba Ober wrote: > The metatype system stores the size of types known to it, so it’s a simple > matter to know how big the all-in-one array needs to be, taking alignment > into consideration, of course. > > I don’t know yet if such a change would be

[Development] Reducing number of allocations in metacall argument marshalling

2014-01-15 Thread Kuba Ober
Currently, the metacall arguments are marshaled by copy-constructing them in their own heap blocks. The addresses to the copies are deposited in an array-of-void*, passed as the args argument to QObject::qt_metacall etc. So there are two layers of allocations: 1. An array of void* is heap-alloc