[unicode] Make _get_parent() return _nil object instead of NULL
diff --git a/src/hb-unicode.cc b/src/hb-unicode.cc
index 0486be3..e8eb553 100644
--- a/src/hb-unicode.cc
+++ b/src/hb-unicode.cc
@@ -110,22 +110,18 @@
if (!(ufuncs = hb_object_create<hb_unicode_funcs_t> ()))
return &_hb_unicode_funcs_nil;
- if (parent != NULL)
- {
- hb_unicode_funcs_make_immutable (parent);
- ufuncs->parent = hb_unicode_funcs_reference (parent);
+ if (!parent)
+ parent = &_hb_unicode_funcs_nil;
- ufuncs->get = parent->get;
+ hb_unicode_funcs_make_immutable (parent);
+ ufuncs->parent = hb_unicode_funcs_reference (parent);
- /* We can safely copy user_data from parent since we hold a reference
- * onto it and it's immutable. We should not copy the destroy notifiers
- * though. */
- ufuncs->user_data = parent->user_data;
- }
- else
- {
- ufuncs->get = _hb_unicode_funcs_nil.get;
- }
+ ufuncs->get = parent->get;
+
+ /* We can safely copy user_data from parent since we hold a reference
+ * onto it and it's immutable. We should not copy the destroy notifiers
+ * though. */
+ ufuncs->user_data = parent->user_data;
return ufuncs;
}
@@ -149,8 +145,7 @@
DESTROY (script);
#undef DESTROY
- if (ufuncs->parent != NULL)
- hb_unicode_funcs_destroy (ufuncs->parent);
+ hb_unicode_funcs_destroy (ufuncs->parent);
free (ufuncs);
}
@@ -190,7 +185,7 @@
hb_unicode_funcs_t *
hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs)
{
- return ufuncs->parent;
+ return ufuncs->parent ? ufuncs->parent : &_hb_unicode_funcs_nil;
}