[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