summaryrefslogtreecommitdiff
path: root/pango/pango-item.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2007-10-24 04:50:09 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2007-10-24 04:50:09 +0000
commitb178da14dabd63937c3867f6d5cbb29f7a31d69f (patch)
treecd998c7bde03f495f0e5badd09cfcbd96f44c0f9 /pango/pango-item.c
parent24b36e5df683f622cfe9e210716c06da8193f6f8 (diff)
downloadpango-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.c17
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);