Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje
Dir : e17/libs/edje/src/lib Modified Files: edje_embryo.c edje_message_queue.c Log Message: testing the edje message queue.. revealed.... problems... and.. now.... FIXES! :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_embryo.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -3 -r1.41 -r1.42 --- edje_embryo.c 25 Nov 2004 16:30:46 -0000 1.41 +++ edje_embryo.c 9 Dec 2004 05:49:34 -0000 1.42 @@ -1210,6 +1210,7 @@ Edje *ed; Edje_Message_Type type; int id, i, n; + Embryo_Cell *ptr; if (params[0] < (sizeof(Embryo_Cell) * (2))) return 0; ed = embryo_program_data_get(ep); @@ -1247,17 +1248,19 @@ Edje_Message_Int *emsg; emsg = alloca(sizeof(Edje_Message_Int)); - emsg->val = (int)params[3]; + ptr = embryo_data_address_get(ep, params[3]); + emsg->val = (int)*ptr; _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); } break; case EDJE_MESSAGE_FLOAT: { - Edje_Message_Int *emsg; + Edje_Message_Float *emsg; float f; - emsg = alloca(sizeof(Edje_Message_Int)); - f = EMBRYO_CELL_TO_FLOAT(params[3]); + emsg = alloca(sizeof(Edje_Message_Float)); + ptr = embryo_data_address_get(ep, params[3]); + f = EMBRYO_CELL_TO_FLOAT(*ptr); emsg->val = (double)f; _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); } @@ -1266,7 +1269,7 @@ { Edje_Message_String_Set *emsg; - n = (params[0] / sizeof(Embryo_Cell)); + n = (params[0] / sizeof(Embryo_Cell)) + 1; emsg = alloca(sizeof(Edje_Message_String_Set) + ((n - 3 - 1) * sizeof(char *))); emsg->count = n - 3; for (i = 3; i < n; i++) @@ -1292,11 +1295,14 @@ { Edje_Message_Int_Set *emsg; - n = (params[0] / sizeof(Embryo_Cell)); + n = (params[0] / sizeof(Embryo_Cell)) + 1; emsg = alloca(sizeof(Edje_Message_Int_Set) + ((n - 3 - 1) * sizeof(int))); emsg->count = n - 3; for (i = 3; i < n; i++) - emsg->val[i - 3] = (int)params[i]; + { + ptr = embryo_data_address_get(ep, params[i]); + emsg->val[i - 3] = (int)*ptr; + } _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); } break; @@ -1304,14 +1310,15 @@ { Edje_Message_Float_Set *emsg; - n = (params[0] / sizeof(Embryo_Cell)); + n = (params[0] / sizeof(Embryo_Cell)) + 1; emsg = alloca(sizeof(Edje_Message_Float_Set) + ((n - 3 - 1) * sizeof(double))); emsg->count = n - 3; for (i = 3; i < n; i++) { float f; - f = EMBRYO_CELL_TO_FLOAT(params[i]); + ptr = embryo_data_address_get(ep, params[i]); + f = EMBRYO_CELL_TO_FLOAT(*ptr); emsg->val[i - 3] = (double)f; } _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); @@ -1333,7 +1340,8 @@ embryo_data_string_get(ep, cptr, s); emsg = alloca(sizeof(Edje_Message_String_Int)); emsg->str = s; - emsg->val = (int)params[4]; + ptr = embryo_data_address_get(ep, params[4]); + emsg->val = (int)*ptr; _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); } } @@ -1355,7 +1363,8 @@ embryo_data_string_get(ep, cptr, s); emsg = alloca(sizeof(Edje_Message_String_Float)); emsg->str = s; - f = EMBRYO_CELL_TO_FLOAT(params[4]); + ptr = embryo_data_address_get(ep, params[4]); + f = EMBRYO_CELL_TO_FLOAT(*ptr); emsg->val = (double)f; _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); } @@ -1375,12 +1384,15 @@ l = embryo_data_string_length_get(ep, cptr); s = alloca(l + 1); embryo_data_string_get(ep, cptr, s); - n = (params[0] / sizeof(Embryo_Cell)); + n = (params[0] / sizeof(Embryo_Cell)) + 1; emsg = alloca(sizeof(Edje_Message_String_Int_Set) + ((n - 4 - 1) * sizeof(int))); emsg->str = s; emsg->count = n - 4; for (i = 4; i < n; i++) - emsg->val[i - 4] = (int)params[i]; + { + ptr = embryo_data_address_get(ep, params[i]); + emsg->val[i - 4] = (int)*ptr; + } _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); } } @@ -1399,7 +1411,7 @@ l = embryo_data_string_length_get(ep, cptr); s = alloca(l + 1); embryo_data_string_get(ep, cptr, s); - n = (params[0] / sizeof(Embryo_Cell)); + n = (params[0] / sizeof(Embryo_Cell)) + 1; emsg = alloca(sizeof(Edje_Message_String_Float_Set) + ((n - 4 - 1) * sizeof(double))); emsg->str = s; emsg->count = n - 4; @@ -1407,7 +1419,8 @@ { float f; - f = EMBRYO_CELL_TO_FLOAT(params[i]); + ptr = embryo_data_address_get(ep, params[i]); + f = EMBRYO_CELL_TO_FLOAT(*ptr); emsg->val[i - 4] = (double)f; } _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_message_queue.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- edje_message_queue.c 2 Dec 2004 09:21:22 -0000 1.13 +++ edje_message_queue.c 9 Dec 2004 05:49:34 -0000 1.14 @@ -439,16 +439,21 @@ ((Edje_Message_String *)em->msg)->str); break; case EDJE_MESSAGE_INT: - embryo_parameter_cell_push(em->edje->collection->script, - (Embryo_Cell)((Edje_Message_Int *)em->msg)->val); + { + Embryo_Cell v; + + v = (Embryo_Cell)((Edje_Message_Int *)em->msg)->val; + embryo_parameter_cell_array_push(em->edje->collection->script, &v, 1); + } break; case EDJE_MESSAGE_FLOAT: { - float v; + Embryo_Cell v; + float fv; - v = (Embryo_Cell)((Edje_Message_Float *)em->msg)->val; - embryo_parameter_cell_push(em->edje->collection->script, - (Embryo_Cell)EMBRYO_FLOAT_TO_CELL(v)); + fv = ((Edje_Message_Float *)em->msg)->val; + v = EMBRYO_FLOAT_TO_CELL(fv); + embryo_parameter_cell_array_push(em->edje->collection->script, &v, 1); } break; case EDJE_MESSAGE_STRING_SET: @@ -458,53 +463,68 @@ break; case EDJE_MESSAGE_INT_SET: for (i = 0; i < ((Edje_Message_Int_Set *)em->msg)->count; i++) - embryo_parameter_cell_push(em->edje->collection->script, - (Embryo_Cell)((Edje_Message_Int_Set *)em->msg)->val[i]); + { + Embryo_Cell v; + + v = (Embryo_Cell)((Edje_Message_Int_Set *)em->msg)->val[i]; + embryo_parameter_cell_array_push(em->edje->collection->script, &v, 1); + } break; case EDJE_MESSAGE_FLOAT_SET: for (i = 0; i < ((Edje_Message_Float_Set *)em->msg)->count; i++) { - float v; + Embryo_Cell v; + float fv; - v = ((Edje_Message_Float_Set *)em->msg)->val[i]; - embryo_parameter_cell_push(em->edje->collection->script, - (Embryo_Cell)EMBRYO_FLOAT_TO_CELL(v)); + fv = ((Edje_Message_Float_Set *)em->msg)->val[i]; + v = EMBRYO_FLOAT_TO_CELL(fv); + embryo_parameter_cell_array_push(em->edje->collection->script, &v, 1); } break; case EDJE_MESSAGE_STRING_INT: embryo_parameter_string_push(em->edje->collection->script, ((Edje_Message_String_Int *)em->msg)->str); - embryo_parameter_cell_push(em->edje->collection->script, - (Embryo_Cell)((Edje_Message_String_Int *)em->msg)->val); + { + Embryo_Cell v; + + v = (Embryo_Cell)((Edje_Message_String_Int *)em->msg)->val; + embryo_parameter_cell_array_push(em->edje->collection->script, &v, 1); + } break; case EDJE_MESSAGE_STRING_FLOAT: embryo_parameter_string_push(em->edje->collection->script, ((Edje_Message_String_Float *)em->msg)->str); { - float v; + Embryo_Cell v; + float fv; - v = (Embryo_Cell)((Edje_Message_String_Float *)em->msg)->val; - embryo_parameter_cell_push(em->edje->collection->script, - (Embryo_Cell)EMBRYO_FLOAT_TO_CELL(v)); + fv = ((Edje_Message_String_Float *)em->msg)->val; + v = EMBRYO_FLOAT_TO_CELL(fv); + embryo_parameter_cell_array_push(em->edje->collection->script, &v, 1); } break; case EDJE_MESSAGE_STRING_INT_SET: embryo_parameter_string_push(em->edje->collection->script, ((Edje_Message_String_Int_Set *)em->msg)->str); for (i = 0; i < ((Edje_Message_String_Int_Set *)em->msg)->count; i++) - embryo_parameter_cell_push(em->edje->collection->script, - (Embryo_Cell)((Edje_Message_String_Int_Set *)em->msg)->val[i]); + { + Embryo_Cell v; + + v = (Embryo_Cell)((Edje_Message_String_Int_Set *)em->msg)->val[i]; + embryo_parameter_cell_array_push(em->edje->collection->script, &v, 1); + } break; case EDJE_MESSAGE_STRING_FLOAT_SET: embryo_parameter_string_push(em->edje->collection->script, ((Edje_Message_String_Float_Set *)em->msg)->str); for (i = 0; i < ((Edje_Message_String_Float_Set *)em->msg)->count; i++) { - float v; + Embryo_Cell v; + float fv; - v = ((Edje_Message_String_Float_Set *)em->msg)->val[i]; - embryo_parameter_cell_push(em->edje->collection->script, - (Embryo_Cell)EMBRYO_FLOAT_TO_CELL(v)); + fv = ((Edje_Message_String_Float_Set *)em->msg)->val[i]; + v = EMBRYO_FLOAT_TO_CELL(fv); + embryo_parameter_cell_array_push(em->edje->collection->script, &v, 1); } break; default: ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs