[svn:parrot] r47522 - branches/gsoc_nfg/src/string

darbelo at svn.parrot.org darbelo at svn.parrot.org
Wed Jun 9 22:33:46 UTC 2010


Author: darbelo
Date: Wed Jun  9 22:33:46 2010
New Revision: 47522
URL: https://trac.parrot.org/parrot/changeset/47522

Log:
Handle cloning on NULL tables.

Modified:
   branches/gsoc_nfg/src/string/grapheme.c

Modified: branches/gsoc_nfg/src/string/grapheme.c
==============================================================================
--- branches/gsoc_nfg/src/string/grapheme.c	Wed Jun  9 22:29:23 2010	(r47521)
+++ branches/gsoc_nfg/src/string/grapheme.c	Wed Jun  9 22:33:46 2010	(r47522)
@@ -32,20 +32,25 @@
 clone_grapheme_table(PARROT_INTERP, grapheme_table *src)
 {
     ASSERT_ARGS(clone_grapheme_table)
-    UINTVAL i;
-    grapheme_table * dst = create_grapheme_table(interp, src->used);
-
-    dst->used = src->used;
-
-    for (i = 0; i < src->used; i++) {
-        dst->graphemes[i].len =  src->graphemes[i].len;
-        dst->graphemes[i].hash = src->graphemes[i].hash;
-        dst->graphemes[i].codepoints = mem_gc_allocate_n_typed(interp, src->graphemes[i].len, UChar32);
-        memcpy(dst->graphemes[i].codepoints, src->graphemes[i].codepoints,
-               src->graphemes[i].len * sizeof (UChar32));
-    }
-
-    return dst;
+    if (src != NULL) {
+        UINTVAL i;
+        grapheme_table * dst = create_grapheme_table(interp, src->used);
+
+        dst->used = src->used;
+
+        for (i = 0; i < src->used; i++) {
+            dst->graphemes[i].len =  src->graphemes[i].len;
+            dst->graphemes[i].hash = src->graphemes[i].hash;
+            dst->graphemes[i].codepoints = mem_gc_allocate_n_typed(interp, src->graphemes[i].len, UChar32);
+            memcpy(dst->graphemes[i].codepoints, src->graphemes[i].codepoints,
+                   src->graphemes[i].len * sizeof (UChar32));
+        }
+
+        return dst;
+	}
+    else {
+        return NULL;
+	}
 }
 
 grapheme_table *


More information about the parrot-commits mailing list