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

Reply via email to