X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=glib%2Fgvarianttype.c;h=5d3332ba003f34991466b5341331eb8d711a6569;hb=dda9965b666ec118b1cbfd93ab5c51e802aa4a21;hp=6f700892a3fd8a4b74e569fb9fa9fd73f7f21624;hpb=cb588d45320c5a6b767d299ebd85306d45e1773c;p=platform%2Fupstream%2Fglib.git diff --git a/glib/gvarianttype.c b/glib/gvarianttype.c index 6f70089..5d3332b 100644 --- a/glib/gvarianttype.c +++ b/glib/gvarianttype.c @@ -110,318 +110,62 @@ * A basic type string describes a basic type (as per * g_variant_type_is_basic()) and is always a single character in length. * The valid basic type strings are "b", "y", "n", "q", "i", "u", "x", "t", - * "h", "d", "s", "o", "g" and "?". + * "h", "f", "d", "s", "o", "g" and "?". * * The above definition is recursive to arbitrary depth. "aaaaai" and * "(ui(nq((y)))s)" are both valid type strings, as is * "a(aa(ui)(qna{ya(yd)}))". * * The meaning of each of the characters is as follows: - * - * - * - * - * - * - * Character - * - * - * - * - * Meaning - * - * - * - * - * - * - * b - * - * - * - * - * the type string of %G_VARIANT_TYPE_BOOLEAN; a boolean value. - * - * - * - * - * - * - * y - * - * - * - * - * the type string of %G_VARIANT_TYPE_BYTE; a byte. - * - * - * - * - * - * - * n - * - * - * - * - * the type string of %G_VARIANT_TYPE_INT16; a signed 16 bit - * integer. - * - * - * - * - * - * - * q - * - * - * - * - * the type string of %G_VARIANT_TYPE_UINT16; an unsigned 16 bit - * integer. - * - * - * - * - * - * - * i - * - * - * - * - * the type string of %G_VARIANT_TYPE_INT32; a signed 32 bit - * integer. - * - * - * - * - * - * - * u - * - * - * - * - * the type string of %G_VARIANT_TYPE_UINT32; an unsigned 32 bit - * integer. - * - * - * - * - * - * - * x - * - * - * - * - * the type string of %G_VARIANT_TYPE_INT64; a signed 64 bit - * integer. - * - * - * - * - * - * - * t - * - * - * - * - * the type string of %G_VARIANT_TYPE_UINT64; an unsigned 64 bit - * integer. - * - * - * - * - * - * - * h - * - * - * - * - * the type string of %G_VARIANT_TYPE_HANDLE; a signed 32 bit - * value that, by convention, is used as an index into an array - * of file descriptors that are sent alongside a D-Bus message. - * - * - * - * - * - * - * d - * - * - * - * - * the type string of %G_VARIANT_TYPE_DOUBLE; a double precision - * floating point value. - * - * - * - * - * - * - * s - * - * - * - * - * the type string of %G_VARIANT_TYPE_STRING; a string. - * - * - * - * - * - * - * o - * - * - * - * - * the type string of %G_VARIANT_TYPE_OBJECT_PATH; a string in - * the form of a D-Bus object path. - * - * - * - * - * - * - * g - * - * - * - * - * the type string of %G_VARIANT_TYPE_STRING; a string in the - * form of a D-Bus type signature. - * - * - * - * - * - * - * ? - * - * - * - * - * the type string of %G_VARIANT_TYPE_BASIC; an indefinite type - * that is a supertype of any of the basic types. - * - * - * - * - * - * - * v - * - * - * - * - * the type string of %G_VARIANT_TYPE_VARIANT; a container type - * that contain any other type of value. - * - * - * - * - * - * - * a - * - * - * - * - * used as a prefix on another type string to mean an array of - * that type; the type string "ai", for example, is the type of - * an array of signed 32-bit integers. - * - * - * - * - * - * - * m - * - * - * - * - * used as a prefix on another type string to mean a "maybe", or - * "nullable", version of that type; the type string "ms", for example, - * is the type of a value that maybe contains a string, or maybe - * contains nothing. - * - * - * - * - * - * - * () - * - * - * - * - * used to enclose zero or more other concatenated type strings - * to create a tuple type; the type string "(is)", for example, - * is the type of a pair of an integer and a string. - * - * - * - * - * - * - * r - * - * - * - * - * the type string of %G_VARIANT_TYPE_TUPLE; an indefinite type - * that is a supertype of any tuple type, regardless of the - * number of items. - * - * - * - * - * - * - * {} - * - * - * - * - * used to enclose a basic type string concatenated with another - * type string to create a dictionary entry type, which usually - * appears inside of an array to form a dictionary; the type - * string "a{sd}", for example, is the type of a dictionary that - * maps strings to double precision floating point values. - * - * - * The first type (the basic type) is the key type and the second - * type is the value type. The reason that the first type is - * restricted to being a basic type is so that it can easily be - * hashed. - * - * - * - * - * - * - * * - * - * - * - * - * the type string of %G_VARIANT_TYPE_ANY; the indefinite type - * that is a supertype of all types. Note that, as with all type - * strings, this character represents exactly one type. It - * cannot be used inside of tuples to mean "any number of items". - * - * - * - * - * - * + * - `b`: the type string of %G_VARIANT_TYPE_BOOLEAN; a boolean value. + * - `y`: the type string of %G_VARIANT_TYPE_BYTE; a byte. + * - `n`: the type string of %G_VARIANT_TYPE_INT16; a signed 16 bit integer. + * - `q`: the type string of %G_VARIANT_TYPE_UINT16; an unsigned 16 bit integer. + * - `i`: the type string of %G_VARIANT_TYPE_INT32; a signed 32 bit integer. + * - `u`: the type string of %G_VARIANT_TYPE_UINT32; an unsigned 32 bit integer. + * - `x`: the type string of %G_VARIANT_TYPE_INT64; a signed 64 bit integer. + * - `t`: the type string of %G_VARIANT_TYPE_UINT64; an unsigned 64 bit integer. + * - `h`: the type string of %G_VARIANT_TYPE_HANDLE; a signed 32 bit value + * that, by convention, is used as an index into an array of file + * descriptors that are sent alongside a D-Bus message. + * - `f`: the type string of %G_VARIANT_TYPE_FLOAT; a single precision + * floating point value. + * - `d`: the type string of %G_VARIANT_TYPE_DOUBLE; a double precision + * floating point value. + * - `s`: the type string of %G_VARIANT_TYPE_STRING; a string. + * - `o`: the type string of %G_VARIANT_TYPE_OBJECT_PATH; a string in the form + * of a D-Bus object path. + * - `g`: the type string of %G_VARIANT_TYPE_STRING; a string in the form of + * a D-Bus type signature. + * - `?`: the type string of %G_VARIANT_TYPE_BASIC; an indefinite type that + * is a supertype of any of the basic types. + * - `v`: the type string of %G_VARIANT_TYPE_VARIANT; a container type that + * contain any other type of value. + * - `a`: used as a prefix on another type string to mean an array of that + * type; the type string "ai", for example, is the type of an array of + * signed 32-bit integers. + * - `m`: used as a prefix on another type string to mean a "maybe", or + * "nullable", version of that type; the type string "ms", for example, + * is the type of a value that maybe contains a string, or maybe contains + * nothing. + * - `()`: used to enclose zero or more other concatenated type strings to + * create a tuple type; the type string "(is)", for example, is the type of + * a pair of an integer and a string. + * - `r`: the type string of %G_VARIANT_TYPE_TUPLE; an indefinite type that is + * a supertype of any tuple type, regardless of the number of items. + * - `{}`: used to enclose a basic type string concatenated with another type + * string to create a dictionary entry type, which usually appears inside of + * an array to form a dictionary; the type string "a{sd}", for example, is + * the type of a dictionary that maps strings to double precision floating + * point values. + * + * The first type (the basic type) is the key type and the second type is + * the value type. The reason that the first type is restricted to being a + * basic type is so that it can easily be hashed. + * - `*`: the type string of %G_VARIANT_TYPE_ANY; the indefinite type that is + * a supertype of all types. Note that, as with all type strings, this + * character represents exactly one type. It cannot be used inside of tuples + * to mean "any number of items". * * Any type string of a container that contains an indefinite type is, * itself, an indefinite type. For example, the type string "a*" @@ -498,7 +242,7 @@ g_variant_type_string_scan (const gchar *string, case '{': if (string == limit || *string == '\0' || /* { */ - !strchr ("bynqihuxtdsog?", *string++) || /* key */ + !strchr ("bynqihuxtfdsog?", *string++) || /* key */ !g_variant_type_string_scan (string, limit, &string) || /* value */ string == limit || *string++ != '}') /* } */ return FALSE; @@ -510,7 +254,7 @@ g_variant_type_string_scan (const gchar *string, case 'b': case 'y': case 'n': case 'q': case 'i': case 'u': case 'x': case 't': case 'd': case 's': case 'o': case 'g': - case 'v': case 'r': case '*': case '?': case 'h': + case 'v': case 'r': case '*': case '?': case 'h': case 'f': break; default: @@ -791,8 +535,8 @@ g_variant_type_is_container (const GVariantType *type) * * Determines if the given @type is a basic type. * - * Basic types are booleans, bytes, integers, doubles, strings, object - * paths and signatures. + * Basic types are booleans, bytes, integers, floats, doubles, strings, + * object paths and signatures. * * Only a basic type may be used as the key of a dictionary entry. * @@ -822,6 +566,7 @@ g_variant_type_is_basic (const GVariantType *type) case 'u': case 't': case 'x': + case 'f': case 'd': case 's': case 'o':