X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gobject%2Fgvaluecollector.h;h=11a1ad81aec64b5b10979b139619c97be8a50b36;hb=2e5bd8cf47f9e1559ccc44823a2f321b8ff8c1ea;hp=b39b40d502c27e57cbbb7b4c4d82d4e69dfcd53e;hpb=631d0c3534661e549f7df18fbb9832bdf19c5eaf;p=platform%2Fupstream%2Fglib.git diff --git a/gobject/gvaluecollector.h b/gobject/gvaluecollector.h index b39b40d..11a1ad8 100644 --- a/gobject/gvaluecollector.h +++ b/gobject/gvaluecollector.h @@ -12,16 +12,13 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General - * Public License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. + * Public License along with this library; if not, see . * * gvaluecollector.h: GValue varargs stubs */ /** * SECTION:value_collection * @Short_description: Converting varargs to generic values - * @See_also:#GValueTable * @Title: Varargs Value Collection * * The macros in this section provide the varargs parsing support needed @@ -93,7 +90,7 @@ G_STMT_START { \ GValue *_val = (value); \ guint _flags = (flags); \ GTypeValueTable *_vtab = g_type_value_table_peek (_value_type); \ - gchar *_collect_format = _vtab->collect_format; \ + const gchar *_collect_format = _vtab->collect_format; \ GTypeCValue _cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, }; \ guint _n_values = 0; \ \ @@ -159,6 +156,36 @@ G_STMT_START { \ G_VALUE_COLLECT_INIT(value, _value_type, var_args, flags, __error); \ } G_STMT_END +#define G_VALUE_COLLECT_SKIP(_value_type, var_args) \ +G_STMT_START { \ + GTypeValueTable *_vtable = g_type_value_table_peek (_value_type); \ + const gchar *_collect_format = _vtable->collect_format; \ + \ + while (*_collect_format) \ + { \ + switch (*_collect_format++) \ + { \ + case G_VALUE_COLLECT_INT: \ + va_arg ((var_args), gint); \ + break; \ + case G_VALUE_COLLECT_LONG: \ + va_arg ((var_args), glong); \ + break; \ + case G_VALUE_COLLECT_INT64: \ + va_arg ((var_args), gint64); \ + break; \ + case G_VALUE_COLLECT_DOUBLE: \ + va_arg ((var_args), gdouble); \ + break; \ + case G_VALUE_COLLECT_POINTER: \ + va_arg ((var_args), gpointer); \ + break; \ + default: \ + g_assert_not_reached (); \ + } \ + } \ +} G_STMT_END + /** * G_VALUE_LCOPY: * @value: a #GValue return location. @value is supposed to be initialized @@ -178,7 +205,7 @@ G_STMT_START { \ guint _flags = (flags); \ GType _value_type = G_VALUE_TYPE (_value); \ GTypeValueTable *_vtable = g_type_value_table_peek (_value_type); \ - gchar *_lcopy_format = _vtable->lcopy_format; \ + const gchar *_lcopy_format = _vtable->lcopy_format; \ GTypeCValue _cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, }; \ guint _n_values = 0; \ \ @@ -217,7 +244,7 @@ G_STMT_START { \ /** * G_VALUE_COLLECT_FORMAT_MAX_LENGTH: * - * The maximal number of #GTypeCValues which can be collected for a + * The maximal number of #GTypeCValues which can be collected for a * single #GValue. */ #define G_VALUE_COLLECT_FORMAT_MAX_LENGTH (8)