On 02/07/2011 05:20 PM, Jan Kiszka wrote:
On 2011-02-07 16:13, Avi Kivity wrote:
>>
>> PeriodicTimer *periodic_timer_new(PeriodicTimerFunc *cb, void *opaque);
>>
>
> void periodic_timer_init(PeriodicTimer *timer, PeriodicTimerFunc *cb);
>
> It is better to embed than to reference.
And embedding means making the layout (at least the size) of
PeriodicTimer public. I guess that's why QEMUTimer works via new.
Why do we care? We don't have an stable module interface.
(the way to provide a size-stable interface is
struct PeriodicTimer {
struct PeriodicTimerImpl *impl
};
though of course it negates some of the advantages of embedding).
--
error compiling committee.c: too many arguments to function