diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2014-10-05 19:26:59 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2014-12-23 11:11:32 +0100 |
commit | 2a939fd913db3ade85e7f71850bbd009690273d4 (patch) | |
tree | 2fdfeb363a134d4d38f5eade06ba3fece42f02d1 | |
parent | 5c598dce8f092395c04d3b097669231c01cc0dc9 (diff) | |
download | libgdata-2a939fd913db3ade85e7f71850bbd009690273d4.tar.gz |
freebase: Add GType for GDataFreebaseSearchResultItem
Making it a boxed type makes it friendly to bindings, as there's
some more embedded knowledge about how to deal with this type
memory-wise.
https://bugzilla.gnome.org/show_bug.cgi?id=737936
-rw-r--r-- | docs/reference/gdata-sections.txt | 1 | ||||
-rw-r--r-- | gdata/gdata.symbols | 1 | ||||
-rw-r--r-- | gdata/services/freebase/gdata-freebase-search-result.c | 21 | ||||
-rw-r--r-- | gdata/services/freebase/gdata-freebase-search-result.h | 2 |
4 files changed, 25 insertions, 0 deletions
diff --git a/docs/reference/gdata-sections.txt b/docs/reference/gdata-sections.txt index 2dce5681..b3fdcb03 100644 --- a/docs/reference/gdata-sections.txt +++ b/docs/reference/gdata-sections.txt @@ -2749,6 +2749,7 @@ gdata_freebase_search_result_item_get_notable_name gdata_freebase_search_result_item_get_score <SUBSECTION Standard> gdata_freebase_search_result_get_type +gdata_freebase_search_result_item_get_type GDATA_FREEBASE_SEARCH_RESULT GDATA_FREEBASE_SEARCH_RESULT_CLASS GDATA_FREEBASE_SEARCH_RESULT_GET_CLASS diff --git a/gdata/gdata.symbols b/gdata/gdata.symbols index 8854a650..7ae3e955 100644 --- a/gdata/gdata.symbols +++ b/gdata/gdata.symbols @@ -1050,6 +1050,7 @@ gdata_freebase_search_result_new gdata_freebase_search_result_get_num_items gdata_freebase_search_result_get_total_hits gdata_freebase_search_result_get_item +gdata_freebase_search_result_item_get_type gdata_freebase_search_result_item_get_mid gdata_freebase_search_result_item_get_id gdata_freebase_search_result_item_get_name diff --git a/gdata/services/freebase/gdata-freebase-search-result.c b/gdata/services/freebase/gdata-freebase-search-result.c index 02f416cd..d2576e7e 100644 --- a/gdata/services/freebase/gdata-freebase-search-result.c +++ b/gdata/services/freebase/gdata-freebase-search-result.c @@ -59,6 +59,10 @@ struct _GDataFreebaseSearchResultPrivate { static void gdata_freebase_search_result_finalize (GObject *self); static gboolean parse_json (GDataParsable *parsable, JsonReader *reader, gpointer user_data, GError **error); +static GDataFreebaseSearchResultItem * item_copy (const GDataFreebaseSearchResultItem *item); +static void item_free (GDataFreebaseSearchResultItem *item); + +G_DEFINE_BOXED_TYPE (GDataFreebaseSearchResultItem, gdata_freebase_search_result_item, item_copy, item_free) G_DEFINE_TYPE (GDataFreebaseSearchResult, gdata_freebase_search_result, GDATA_TYPE_FREEBASE_RESULT) @@ -92,6 +96,23 @@ item_free (GDataFreebaseSearchResultItem *item) g_slice_free (GDataFreebaseSearchResultItem, item); } +static GDataFreebaseSearchResultItem * +item_copy (const GDataFreebaseSearchResultItem *item) +{ + GDataFreebaseSearchResultItem *copy; + + copy = item_new (); + copy->mid = g_strdup (item->mid); + copy->id = g_strdup (item->id); + copy->name = g_strdup (item->name); + copy->lang = g_strdup (item->lang); + copy->notable_id = g_strdup (item->notable_id); + copy->notable_name = g_strdup (item->notable_name); + copy->score = item->score; + + return copy; +} + static void gdata_freebase_search_result_init (GDataFreebaseSearchResult *self) { diff --git a/gdata/services/freebase/gdata-freebase-search-result.h b/gdata/services/freebase/gdata-freebase-search-result.h index 8173f752..e687caf7 100644 --- a/gdata/services/freebase/gdata-freebase-search-result.h +++ b/gdata/services/freebase/gdata-freebase-search-result.h @@ -28,6 +28,7 @@ G_BEGIN_DECLS +#define GDATA_TYPE_FREEBASE_SEARCH_RESULT_ITEM (gdata_freebase_search_result_item_get_type ()) #define GDATA_TYPE_FREEBASE_SEARCH_RESULT (gdata_freebase_search_result_get_type ()) #define GDATA_FREEBASE_SEARCH_RESULT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDATA_TYPE_FREEBASE_SEARCH_RESULT, GDataFreebaseSearchResult)) #define GDATA_FREEBASE_SEARCH_RESULT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDATA_TYPE_FREEBASE_SEARCH_RESULT, GDataFreebaseSearchResultClass)) @@ -76,6 +77,7 @@ typedef struct { void (*_g_reserved1) (void); } GDataFreebaseSearchResultClass; +GType gdata_freebase_search_result_item_get_type (void) G_GNUC_CONST; GType gdata_freebase_search_result_get_type (void) G_GNUC_CONST; GDataFreebaseSearchResult *gdata_freebase_search_result_new (void) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC; |