eo2: make macro pass C++ compiler.

This commit is contained in:
Cedric Bail 2013-12-25 14:34:26 +01:00 committed by Tom Hacohen
parent ef873b7b29
commit d0153fabc1
1 changed files with 33 additions and 32 deletions

View File

@ -608,9 +608,10 @@ typedef struct _Eo2_Op_Call_Data
Ret \ Ret \
Name(_Eo *obj, Eo *objid) \ Name(_Eo *obj, Eo *objid) \
{ \ { \
typedef Ret (*__##Name##_func)(Eo *, void *obj_data); \
Eo2_Op_Call_Data call; \ Eo2_Op_Call_Data call; \
if (!eo2_call_resolve(obj, Id(Name), &call)) return DefRet; \ if (!eo2_call_resolve(obj, Id(Name), &call)) return DefRet; \
Ret (*func)(Eo *, void *obj_data) = call.func; \ __##Name##_func func = (__##Name##_func) call.func; \
return Func; \ return Func; \
} }
@ -618,13 +619,13 @@ Name(_Eo *obj, Eo *objid) \
Ret \ Ret \
Name(_Eo *obj, Eo *objid, __VA_ARGS__) \ Name(_Eo *obj, Eo *objid, __VA_ARGS__) \
{ \ { \
typedef Ret (*__##Name##_func)(Eo *, void *obj_data, __VA_ARGS__); \
Eo2_Op_Call_Data call; \ Eo2_Op_Call_Data call; \
if (!eo2_call_resolve(obj, Id(Name), &call)) return DefRet; \ if (!eo2_call_resolve(obj, Id(Name), &call)) return DefRet; \
Ret (*func)(Eo *, void *obj_data, __VA_ARGS__) = call.func; \ __##Name##_func func = (__##Name##_func) call.func; \
return Func; \ return Func; \
} }
EAPI _Eo * eo2_do_start(Eo *obj_id); EAPI _Eo * eo2_do_start(Eo *obj_id);
#define eo2_call_resolve(obj_id, op, call) eo2_call_resolve_internal(obj_id, NULL, op, call) #define eo2_call_resolve(obj_id, op, call) eo2_call_resolve_internal(obj_id, NULL, op, call)
EAPI Eina_Bool eo2_call_resolve_internal(_Eo *obj, const Eo_Class *klass, Eo_Op op, Eo2_Op_Call_Data *call); EAPI Eina_Bool eo2_call_resolve_internal(_Eo *obj, const Eo_Class *klass, Eo_Op op, Eo2_Op_Call_Data *call);