Enlightenment CVS committal Author : sebastid Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_msg.c Log Message: Join strings into malloc =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_msg.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- e_msg.c 2 Mar 2006 12:03:48 -0000 1.4 +++ e_msg.c 8 Aug 2006 02:00:13 -0000 1.5 @@ -14,8 +14,8 @@ struct _E_Msg_Event { - const char *name; - const char *info; + char *name; + char *info; int val; E_Object *obj; }; @@ -53,13 +53,27 @@ EAPI void e_msg_send(const char *name, const char *info, int val, E_Object *obj) { + unsigned int size, pos, name_len, info_len; E_Msg_Event *ev; - ev = calloc(1, sizeof(E_Msg_Event)); - /* FIXME: probably better todup the strings but merge with a single - * malloc for the event struct */ - if (name) ev->name = evas_stringshare_add(name); - if (info) ev->info = evas_stringshare_add(info); + name_len = info_len = size = 0; + size = sizeof(E_Msg_Event); + if (name) name_len = strlen(name) + 1; + if (info) info_len = strlen(info) + 1; + ev = malloc(size + name_len + info_len); + if (!ev) return; + pos = size; + if (name) + { + ev->name = ((char *)ev) + pos; + pos += name_len; + strcpy(ev->name, name); + } + if (info) + { + ev->info = ((char *)ev) + pos; + strcpy(ev->info, info); + } ev->val = val; ev->obj = obj; if (ev->obj) e_object_ref(ev->obj); @@ -130,7 +144,5 @@ E_Msg_Event *e; e = ev; - if (e->name) evas_stringshare_del(e->name); - if (e->info) evas_stringshare_del(e->info); if (e->obj) e_object_unref(e->obj); } ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs