use alloca+memcpy instead of strdupa.
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 2 May 2009 23:22:07 +0000 (23:22 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 2 May 2009 23:22:07 +0000 (23:22 +0000)
for these guys that insist in using doomed systems like solaris or
bsd, god save them ;-)

Patch by vtorri.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/edje@40491 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/edje_program.c

index 2e9b383..a04c4b0 100644 (file)
@@ -822,14 +822,20 @@ _edje_emit(Edje *ed, const char *sig, const char *src)
    sep = strchr(sig, ':');
    if (sep)
      {
+        size_t length;
+        char *part;
        /* the signal contains a colon, split the signal into "group:signal",
        * and deliver it to "group"
        */
-       char *part = strdupa(sig);
+       length = strlen(sig) + 1;
+       part = alloca(length);
        if (part)
         {
-           char *newsig = part + (sep - sig);
+            char *newsig;
            int i;
+
+            memcpy(part, sig, length);
+            newsig = part + (sep - sig);
            *newsig = '\0';
            newsig++;