diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2007-10-24 04:50:09 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2007-10-24 04:50:09 +0000 |
commit | b178da14dabd63937c3867f6d5cbb29f7a31d69f (patch) | |
tree | cd998c7bde03f495f0e5badd09cfcbd96f44c0f9 /pango/pango-item.c | |
parent | 24b36e5df683f622cfe9e210716c06da8193f6f8 (diff) | |
download | pango-b178da14dabd63937c3867f6d5cbb29f7a31d69f.tar.gz |
Bug 471577 – GBoxed GType for PangoGlyphItem
2007-10-24 Behdad Esfahbod <behdad@gnome.org>
Bug 471577 – GBoxed GType for PangoGlyphItem
* pango/pango-glyph-item.h:
* pango/pango-glyph-item.c:
New public API:
PANGO_TYPE_GLYPH_ITEM
pango_glyph_item_copy()
pango_glyph_item_get_type()
* pango/pango-layout.c:
New public API:
pango_layout_iter_copy()
* pango/fonts.c (pango_font_description_copy),
(pango_font_description_copy_static),
(pango_font_description_free), (pango_font_descriptions_free),
(pango_font_metrics_ref), (pango_font_metrics_unref):
* pango/glyphstring.c (pango_glyph_string_copy),
(pango_glyph_string_free):
* pango/pango-attributes.c (pango_attr_list_ref),
(pango_attr_list_unref), (pango_attr_list_copy):
* pango/pango-color.c (pango_color_copy), (pango_color_free):
* pango/pango-item.c (pango_item_copy), (pango_item_free):
* pango/pango-layout.c (pango_layout_line_ref),
(pango_layout_line_unref), (pango_layout_iter_copy),
(pango_layout_iter_free):
* pango/pango-layout.h:
* pango/pango-matrix.c (pango_matrix_copy), (pango_matrix_free):
Update all copy/free functions to accept NULL as legitimate input.
Previously all were g_return_[val_]if_fail()ing it.
* pango/pango.def:
* docs/pango-sections.txt:
* docs/tmpl/glyphs.sgml:
* docs/tmpl/layout.sgml:
Update.
svn path=/trunk/; revision=2457
Diffstat (limited to 'pango/pango-item.c')
-rw-r--r-- | pango/pango-item.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/pango/pango-item.c b/pango/pango-item.c index d5650827..3c7ff57c 100644 --- a/pango/pango-item.c +++ b/pango/pango-item.c @@ -42,18 +42,24 @@ pango_item_new (void) /** * pango_item_copy: - * @item: a #PangoItem + * @item: a #PangoItem, may be %NULL * * Copy an existing #PangoItem structure. * * Return value: the newly allocated #PangoItem, which should - * be freed with pango_item_free(). + * be freed with pango_item_free(), or %NULL if + * @item was NULL. **/ PangoItem * pango_item_copy (PangoItem *item) { GSList *extra_attrs, *tmp_list; - PangoItem *result = g_slice_new (PangoItem); + PangoItem *result; + + if (item == NULL) + return NULL; + + result = g_slice_new (PangoItem); result->offset = item->offset; result->length = item->length; @@ -78,13 +84,16 @@ pango_item_copy (PangoItem *item) /** * pango_item_free: - * @item: a #PangoItem + * @item: a #PangoItem, may be %NULL * * Free a #PangoItem and all associated memory. **/ void pango_item_free (PangoItem *item) { + if (item == NULL) + return; + if (item->analysis.extra_attrs) { g_slist_foreach (item->analysis.extra_attrs, (GFunc)pango_attribute_destroy, NULL); |