summaryrefslogtreecommitdiff
path: root/src/lib/eldbus/eldbus_service.c
diff options
context:
space:
mode:
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2014-07-08 11:57:08 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2014-07-08 11:57:08 +0900
commit1baf9e48253bb903969ba770f0f565ba6de0c099 (patch)
tree9a868ac6032c8f595128dd6b281b0cd243470d05 /src/lib/eldbus/eldbus_service.c
parent8e496570a77da8ec99595d66daabba85eaff4e7e (diff)
eldbus: Fixes ABI break in Eldbus_Method with appended void* data
Summary: Removed the void* data variable from Eldbus_Method and created another struct that has the void* data and added an array of Eldbus_Method2 in the descriptor for the Eldbus_Service_Interface_Desc and making the appropriate modifications in the implementation to use both descriptions. Reviewers: cedric, stefan_schmidt, raster CC: cedric Maniphest Tasks: T1408 Differential Revision: https://phab.enlightenment.org/D1139
Diffstat (limited to 'src/lib/eldbus/eldbus_service.c')
-rw-r--r--src/lib/eldbus/eldbus_service.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/eldbus/eldbus_service.c b/src/lib/eldbus/eldbus_service.c
index 0b06fa37de..c18f2cb626 100644
--- a/src/lib/eldbus/eldbus_service.c
+++ b/src/lib/eldbus/eldbus_service.c
@@ -933,6 +933,7 @@ _eldbus_service_interface_register(Eldbus_Connection *conn, const char *path, co
933 Eldbus_Service_Object *obj; 933 Eldbus_Service_Object *obj;
934 Eldbus_Service_Interface *iface; 934 Eldbus_Service_Interface *iface;
935 const Eldbus_Method *method; 935 const Eldbus_Method *method;
936 const Eldbus_Method2 *method2;
936 const Eldbus_Property *property; 937 const Eldbus_Property *property;
937 Eina_Array *signatures; 938 Eina_Array *signatures;
938 939
@@ -965,6 +966,9 @@ _eldbus_service_interface_register(Eldbus_Connection *conn, const char *path, co
965 for (method = desc->methods; method && method->member; method++) 966 for (method = desc->methods; method && method->member; method++)
966 _eldbus_service_method_add(iface, method); 967 _eldbus_service_method_add(iface, method);
967 968
969 for (method2 = desc->methods2; method2 && method2->method.member; method2++)
970 _eldbus_service_method_add(iface, &method2->method);
971
968 iface->signals = desc->signals; 972 iface->signals = desc->signals;
969 iface->sign_of_signals = signatures; 973 iface->sign_of_signals = signatures;
970 974
@@ -1288,7 +1292,7 @@ _eldbus_method_call(Eldbus_Method const* method, Eldbus_Service_Interface* iface
1288 if(method->flags & ELDBUS_METHOD_FLAG_HAS_DATA) 1292 if(method->flags & ELDBUS_METHOD_FLAG_HAS_DATA)
1289 { 1293 {
1290 Eldbus_Method_Data_Cb cb = (Eldbus_Method_Data_Cb)method->cb; 1294 Eldbus_Method_Data_Cb cb = (Eldbus_Method_Data_Cb)method->cb;
1291 return cb(method->data, iface, msg); 1295 return cb(((Eldbus_Method2 const*)method)->data, iface, msg);
1292 } 1296 }
1293 else 1297 else
1294 { 1298 {