[gobject-introspection] Deprecate ErrorDomain



commit 4dabe20ed5753bccd2abf8ad02e95ce6ab53036c
Author: Dan Winship <danw gnome org>
Date:   Thu May 19 16:12:03 2011 -0400

    Deprecate ErrorDomain
    
    The previous ErrorDomain blob was never actually scanned or used, and
    it was kind of a lame API conceptually.
    
    To keep some compatibility, rather than removing the enumeration
    values, rename them to _INVALID, and don't bump the typelib version.
    This should in theory allow a new libgirepository to read an old
    typelib.
    
    Based on a patch from Colin Walters
    
    https://bugzilla.gnome.org/show_bug.cgi?id=602516

 Makefile-girepository.am          |    2 -
 girepository/gibaseinfo.c         |    5 +-
 girepository/gierrordomaininfo.c  |   95 -------------------------------------
 girepository/gierrordomaininfo.h  |   44 -----------------
 girepository/gifieldinfo.c        |    4 +-
 girepository/girepository.c       |    2 -
 girepository/girepository.h       |    1 -
 girepository/girmodule.c          |    2 +-
 girepository/girnode.c            |   72 ++--------------------------
 girepository/girnode.h            |   15 +-----
 girepository/girparser.c          |   81 +------------------------------
 girepository/girwriter.c          |   40 ---------------
 girepository/gitypeinfo.c         |   69 ---------------------------
 girepository/gitypeinfo.h         |    3 -
 girepository/gitypelib-internal.h |   29 +----------
 girepository/gitypelib.c          |   40 ---------------
 girepository/gitypes.h            |   10 +----
 17 files changed, 18 insertions(+), 496 deletions(-)
---
diff --git a/Makefile-girepository.am b/Makefile-girepository.am
index 3fbcac6..736efc5 100644
--- a/Makefile-girepository.am
+++ b/Makefile-girepository.am
@@ -5,7 +5,6 @@ girepo_HEADERS =					\
 	girepository/gicallableinfo.h			\
 	girepository/giconstantinfo.h			\
 	girepository/gienuminfo.h			\
-	girepository/gierrordomaininfo.h		\
 	girepository/gifieldinfo.h			\
 	girepository/gifunctioninfo.h			\
 	girepository/giinterfaceinfo.h			\
@@ -51,7 +50,6 @@ libgirepository_1_0_la_SOURCES =			\
 	girepository/gicallableinfo.c			\
 	girepository/giconstantinfo.c			\
 	girepository/gienuminfo.c			\
-	girepository/gierrordomaininfo.c		\
 	girepository/gifieldinfo.c			\
 	girepository/gifunctioninfo.c			\
 	girepository/ginvoke.c				\
diff --git a/girepository/gibaseinfo.c b/girepository/gibaseinfo.c
index 057cde7..bfb7743 100644
--- a/girepository/gibaseinfo.c
+++ b/girepository/gibaseinfo.c
@@ -202,7 +202,6 @@ _g_type_info_init (GIBaseInfo *info,
  *    +----<link linkend="gi-GIArgInfo">GIArgInfo</link>
  *    +----<link linkend="gi-GICallableInfo">GICallableInfo</link>
  *    +----<link linkend="gi-GIConstantInfo">GIConstantInfo</link>
- *    +----<link linkend="gi-GIErrorDomainInfo">GIErrorDomainInfo</link>
  *    +----<link linkend="gi-GIFieldInfo">GIFieldInfo</link>
  *    +----<link linkend="gi-GIPropertyInfo">GIPropertyInfo</link>
  *    +----<link linkend="gi-GIRegisteredTypeInfo">GIRegisteredTypeInfo</link>
@@ -299,7 +298,7 @@ g_base_info_get_name (GIBaseInfo *info)
     case GI_INFO_TYPE_OBJECT:
     case GI_INFO_TYPE_INTERFACE:
     case GI_INFO_TYPE_CONSTANT:
-    case GI_INFO_TYPE_ERROR_DOMAIN:
+    case GI_INFO_TYPE_INVALID_0:
     case GI_INFO_TYPE_UNION:
       {
         CommonBlob *blob = (CommonBlob *)&rinfo->typelib->data[rinfo->offset];
@@ -421,7 +420,7 @@ g_base_info_is_deprecated (GIBaseInfo *info)
     case GI_INFO_TYPE_OBJECT:
     case GI_INFO_TYPE_INTERFACE:
     case GI_INFO_TYPE_CONSTANT:
-    case GI_INFO_TYPE_ERROR_DOMAIN:
+    case GI_INFO_TYPE_INVALID_0:
       {
         CommonBlob *blob = (CommonBlob *)&rinfo->typelib->data[rinfo->offset];
 
diff --git a/girepository/gifieldinfo.c b/girepository/gifieldinfo.c
index 17491a8..4197685 100644
--- a/girepository/gifieldinfo.c
+++ b/girepository/gifieldinfo.c
@@ -322,7 +322,7 @@ g_field_info_get_field (GIFieldInfo *field_info,
 	      case GI_INFO_TYPE_INTERFACE:
 	      case GI_INFO_TYPE_FUNCTION:
 	      case GI_INFO_TYPE_CONSTANT:
-	      case GI_INFO_TYPE_ERROR_DOMAIN:
+	      case GI_INFO_TYPE_INVALID_0:
 	      case GI_INFO_TYPE_VALUE:
 	      case GI_INFO_TYPE_SIGNAL:
 	      case GI_INFO_TYPE_PROPERTY:
@@ -498,7 +498,7 @@ g_field_info_set_field (GIFieldInfo     *field_info,
 	      case GI_INFO_TYPE_INTERFACE:
 	      case GI_INFO_TYPE_FUNCTION:
 	      case GI_INFO_TYPE_CONSTANT:
-	      case GI_INFO_TYPE_ERROR_DOMAIN:
+	      case GI_INFO_TYPE_INVALID_0:
 	      case GI_INFO_TYPE_VALUE:
 	      case GI_INFO_TYPE_SIGNAL:
 	      case GI_INFO_TYPE_PROPERTY:
diff --git a/girepository/girepository.c b/girepository/girepository.c
index c5c464b..1afba0c 100644
--- a/girepository/girepository.c
+++ b/girepository/girepository.c
@@ -1466,8 +1466,6 @@ g_info_type_to_string (GIInfoType type)
       return "interface";
     case GI_INFO_TYPE_CONSTANT:
       return "constant";
-    case GI_INFO_TYPE_ERROR_DOMAIN:
-      return "error domain";
     case GI_INFO_TYPE_UNION:
       return "union";
     case GI_INFO_TYPE_VALUE:
diff --git a/girepository/girepository.h b/girepository/girepository.h
index f14b1ad..fddcf8c 100644
--- a/girepository/girepository.h
+++ b/girepository/girepository.h
@@ -32,7 +32,6 @@
 #include <gicallableinfo.h>
 #include <giconstantinfo.h>
 #include <gienuminfo.h>
-#include <gierrordomaininfo.h>
 #include <gifieldinfo.h>
 #include <gifunctioninfo.h>
 #include <giinterfaceinfo.h>
diff --git a/girepository/girmodule.c b/girepository/girmodule.c
index 49daaa6..f438a19 100644
--- a/girepository/girmodule.c
+++ b/girepository/girmodule.c
@@ -415,7 +415,7 @@ _g_ir_module_build_typelib (GIrModule  *module)
   header->field_blob_size = sizeof (FieldBlob);
   header->value_blob_size = sizeof (ValueBlob);
   header->constant_blob_size = sizeof (ConstantBlob);
-  header->error_domain_blob_size = sizeof (ErrorDomainBlob);
+  header->error_domain_blob_size = 16; /* No longer used */
   header->attribute_blob_size = sizeof (AttributeBlob);
   header->signature_blob_size = sizeof (SignatureBlob);
   header->enum_blob_size = sizeof (EnumBlob);
diff --git a/girepository/girnode.c b/girepository/girnode.c
index a56471e..1c51bfd 100644
--- a/girepository/girnode.c
+++ b/girepository/girnode.c
@@ -101,8 +101,6 @@ _g_ir_node_type_to_string (GIrNodeTypeId type)
       return "value";
     case G_IR_NODE_CONSTANT:
       return "constant";
-    case G_IR_NODE_ERROR_DOMAIN:
-      return "error-domain";
     case G_IR_NODE_XREF:
       return "xref";
     case G_IR_NODE_UNION:
@@ -175,10 +173,6 @@ _g_ir_node_new (GIrNodeTypeId  type,
       node = g_malloc0 (sizeof (GIrNodeConstant));
       break;
 
-    case G_IR_NODE_ERROR_DOMAIN:
-      node = g_malloc0 (sizeof (GIrNodeErrorDomain));
-      break;
-
     case G_IR_NODE_XREF:
       node = g_malloc0 (sizeof (GIrNodeXRef));
       break;
@@ -379,16 +373,6 @@ _g_ir_node_free (GIrNode *node)
       }
       break;
 
-    case G_IR_NODE_ERROR_DOMAIN:
-      {
-	GIrNodeErrorDomain *domain = (GIrNodeErrorDomain *)node;
-
-	g_free (node->name);
-	g_free (domain->getquark);
-	g_free (domain->codes);
-      }
-      break;
-
     case G_IR_NODE_XREF:
       {
 	GIrNodeXRef *xref = (GIrNodeXRef *)node;
@@ -535,10 +519,6 @@ _g_ir_node_get_size (GIrNode *node)
       size = sizeof (ConstantBlob);
       break;
 
-    case G_IR_NODE_ERROR_DOMAIN:
-      size = sizeof (ErrorDomainBlob);
-      break;
-
     case G_IR_NODE_XREF:
       size = 0;
       break;
@@ -665,16 +645,7 @@ _g_ir_node_get_full_size_internal (GIrNode *parent,
 		  size += _g_ir_node_get_full_size_internal (node, (GIrNode *)type->parameter_type2);
 		break;
 	      case GI_TYPE_TAG_ERROR:
-		{
-		  gint n;
-
-		  if (type->errors)
-		    n = g_strv_length (type->errors);
-		  else
-		    n = 0;
-
-		  size += sizeof (ErrorTypeBlob) + 2 * (n + n % 2);
-		}
+		size += sizeof (ErrorTypeBlob);
 		break;
 	      default:
 		g_error ("Unknown type tag %d\n", type->tag);
@@ -844,16 +815,6 @@ _g_ir_node_get_full_size_internal (GIrNode *parent,
       }
       break;
 
-    case G_IR_NODE_ERROR_DOMAIN:
-      {
-	GIrNodeErrorDomain *domain = (GIrNodeErrorDomain *)node;
-
-	size = sizeof (ErrorDomainBlob);
-	size += ALIGN_VALUE (strlen (node->name) + 1, 4);
-	size += ALIGN_VALUE (strlen (domain->getquark) + 1, 4);
-      }
-      break;
-
     case G_IR_NODE_XREF:
       {
 	GIrNodeXRef *xref = (GIrNodeXRef *)node;
@@ -935,7 +896,7 @@ _g_ir_node_can_have_member (GIrNode    *node)
     case G_IR_NODE_ENUM:
     case G_IR_NODE_FLAGS:
     case G_IR_NODE_CONSTANT:
-    case G_IR_NODE_ERROR_DOMAIN:
+    case G_IR_NODE_INVALID_0:
     case G_IR_NODE_PARAM:
     case G_IR_NODE_TYPE:
     case G_IR_NODE_PROPERTY:
@@ -1559,21 +1520,14 @@ _g_ir_node_build_typelib (GIrNode         *node,
 		  case GI_TYPE_TAG_ERROR:
 		    {
 		      ErrorTypeBlob *blob = (ErrorTypeBlob *)&data[*offset2];
-		      gint i;
 
 		      blob->pointer = 1;
 		      blob->reserved = 0;
 		      blob->tag = type->tag;
 		      blob->reserved2 = 0;
-		      if (type->errors)
-			blob->n_domains = g_strv_length (type->errors);
-		      else
-			blob->n_domains = 0;
-
-		      *offset2 = ALIGN_VALUE (*offset2 + G_STRUCT_OFFSET (ErrorTypeBlob, domains)
-		                              + 2 * blob->n_domains, 4);
-		      for (i = 0; i < blob->n_domains; i++)
-			blob->domains[i] = find_entry (build, type->errors[i]);
+		      blob->n_domains = 0;
+
+		      *offset2 += sizeof (ErrorTypeBlob);
 		    }
 		    break;
 
@@ -2234,22 +2188,6 @@ _g_ir_node_build_typelib (GIrNode         *node,
       }
       break;
 
-    case G_IR_NODE_ERROR_DOMAIN:
-      {
-	GIrNodeErrorDomain *domain = (GIrNodeErrorDomain *)node;
-	ErrorDomainBlob *blob = (ErrorDomainBlob *)&data[*offset];
-	*offset += sizeof (ErrorDomainBlob);
-
-	blob->blob_type = BLOB_TYPE_ERROR_DOMAIN;
-	blob->deprecated = domain->deprecated;
-	blob->reserved = 0;
-	blob->name = _g_ir_write_string (node->name, strings, data, offset2);
-	blob->get_quark = _g_ir_write_string (domain->getquark, strings, data, offset2);
-	blob->error_codes = find_entry (build, domain->codes);
-	blob->reserved2 = 0;
-      }
-      break;
-
     case G_IR_NODE_CONSTANT:
       {
 	GIrNodeConstant *constant = (GIrNodeConstant *)node;
diff --git a/girepository/girnode.h b/girepository/girnode.h
index 1f9102f..fb2616b 100644
--- a/girepository/girnode.h
+++ b/girepository/girnode.h
@@ -41,7 +41,6 @@ typedef struct _GIrNodeEnum GIrNodeEnum;
 typedef struct _GIrNodeBoxed GIrNodeBoxed;
 typedef struct _GIrNodeStruct GIrNodeStruct;
 typedef struct _GIrNodeConstant GIrNodeConstant;
-typedef struct _GIrNodeErrorDomain GIrNodeErrorDomain;
 typedef struct _GIrNodeXRef GIrNodeXRef;
 typedef struct _GIrNodeUnion GIrNodeUnion;
 
@@ -57,7 +56,7 @@ typedef enum
   G_IR_NODE_OBJECT       =  7,
   G_IR_NODE_INTERFACE    =  8,
   G_IR_NODE_CONSTANT     =  9,
-  G_IR_NODE_ERROR_DOMAIN = 10,
+  G_IR_NODE_INVALID_0    = 10, /* DELETED - used to be ERROR_DOMAIN */
   G_IR_NODE_UNION        = 11,
   G_IR_NODE_PARAM        = 12,
   G_IR_NODE_TYPE         = 13,
@@ -343,18 +342,6 @@ struct _GIrNodeUnion
 };
 
 
-struct _GIrNodeErrorDomain
-{
-  GIrNode node;
-
-  gboolean deprecated;
-
-  gchar *name;
-  gchar *getquark;
-  gchar *codes;
-};
-
-
 GIrNode * _g_ir_node_new             (GIrNodeTypeId type,
 				     GIrModule     *module);
 void      _g_ir_node_free            (GIrNode    *node);
diff --git a/girepository/girparser.c b/girepository/girparser.c
index 02c0442..4e55272 100644
--- a/girepository/girparser.c
+++ b/girepository/girparser.c
@@ -68,13 +68,12 @@ typedef enum
   STATE_BOXED_FIELD,
   STATE_STRUCT,
   STATE_STRUCT_FIELD,
-  STATE_ERRORDOMAIN, /* 25 */
-  STATE_UNION,
+  STATE_UNION,           /* 25 */
   STATE_UNION_FIELD,
   STATE_NAMESPACE_CONSTANT,
   STATE_CLASS_CONSTANT,
-  STATE_INTERFACE_CONSTANT,  /* 30 */
-  STATE_ALIAS,
+  STATE_INTERFACE_CONSTANT,
+  STATE_ALIAS,           /* 30 */
   STATE_TYPE,
   STATE_ATTRIBUTE,
   STATE_DOC,
@@ -1615,68 +1614,6 @@ start_constant (GMarkupParseContext *context,
 }
 
 static gboolean
-start_errordomain (GMarkupParseContext *context,
-		   const gchar         *element_name,
-		   const gchar        **attribute_names,
-		   const gchar        **attribute_values,
-		   ParseContext        *ctx,
-		   GError             **error)
-{
-  const gchar *name;
-  const gchar *getquark;
-  const gchar *codes;
-  const gchar *deprecated;
-  GIrNodeErrorDomain *domain;
-
-  if (!(strcmp (element_name, "errordomain") == 0 &&
-	ctx->state == STATE_NAMESPACE))
-    return FALSE;
-
-  if (!introspectable_prelude (context, attribute_names, attribute_values, ctx, STATE_ERRORDOMAIN))
-    return TRUE;
-
-
-  name = find_attribute ("name", attribute_names, attribute_values);
-  getquark = find_attribute ("get-quark", attribute_names, attribute_values);
-  codes = find_attribute ("codes", attribute_names, attribute_values);
-  deprecated = find_attribute ("deprecated", attribute_names, attribute_values);
-
-  if (name == NULL)
-    {
-      MISSING_ATTRIBUTE (context, error, element_name, "name");
-      return FALSE;
-    }
-  else if (getquark == NULL)
-    {
-      MISSING_ATTRIBUTE (context, error, element_name, "getquark");
-      return FALSE;
-    }
-  else if (codes == NULL)
-    {
-      MISSING_ATTRIBUTE (context, error, element_name, "codes");
-      return FALSE;
-    }
-
-  domain = (GIrNodeErrorDomain *) _g_ir_node_new (G_IR_NODE_ERROR_DOMAIN,
-						 ctx->current_module);
-
-  ((GIrNode *)domain)->name = g_strdup (name);
-  domain->getquark = g_strdup (getquark);
-  domain->codes = g_strdup (codes);
-
-  if (deprecated)
-    domain->deprecated = TRUE;
-  else
-    domain->deprecated = FALSE;
-
-  push_node (ctx, (GIrNode *) domain);
-  ctx->current_module->entries =
-    g_list_append (ctx->current_module->entries, domain);
-
-  return TRUE;
-}
-
-static gboolean
 start_interface (GMarkupParseContext *context,
 		 const gchar         *element_name,
 		 const gchar        **attribute_names,
@@ -2788,10 +2725,6 @@ start_element_handler (GMarkupParseContext *context,
 		      attribute_names, attribute_values,
 		      ctx, error))
 	goto out;
-      else if (start_errordomain (context, element_name,
-		      attribute_names, attribute_values,
-		      ctx, error))
-	goto out;
       break;
 
     case 'f':
@@ -3290,14 +3223,6 @@ end_element_handler (GMarkupParseContext *context,
 	}
       break;
 
-    case STATE_ERRORDOMAIN:
-      if (require_end_element (context, ctx, "errordomain", element_name, error))
-	{
-	  pop_node (ctx);
-	  state_switch (ctx, STATE_NAMESPACE);
-	}
-      break;
-
     case STATE_INTERFACE_PROPERTY:
       if (strcmp ("type", element_name) == 0)
 	break;
diff --git a/girepository/girwriter.c b/girepository/girwriter.c
index f6ab34e..2cdc9a1 100644
--- a/girepository/girwriter.c
+++ b/girepository/girwriter.c
@@ -212,7 +212,6 @@ write_type_info (const gchar *namespace,
 		 Xml         *file)
 {
   gint tag;
-  gint i;
   GITypeInfo *type;
   gboolean is_pointer;
 
@@ -329,24 +328,8 @@ write_type_info (const gchar *namespace,
     }
   else if (tag == GI_TYPE_TAG_ERROR)
     {
-      gint n;
-
       xml_start_element (file, "type");
       xml_printf (file, " name=\"GLib.Error\"");
-
-      n = g_type_info_get_n_error_domains (info);
-      if (n > 0)
-	{
-	  for (i = 0; i < n; i++)
-	    {
-	      GIErrorDomainInfo *ed = g_type_info_get_error_domain (info, i);
-	      xml_start_element (file, "type");
-	      write_type_name_attribute (namespace, (GIBaseInfo *)ed, "name", file);
-	      xml_end_element (file, "type");
-	      g_base_info_unref ((GIBaseInfo *)ed);
-	    }
-	}
-
       xml_end_element (file, "type");
     }
   else
@@ -1194,25 +1177,6 @@ write_interface_info (const gchar     *namespace,
 }
 
 static void
-write_error_domain_info (const gchar       *namespace,
-			 GIErrorDomainInfo *info,
-			 Xml               *file)
-{
-  GIBaseInfo *enum_;
-  const gchar *name, *quark;
-
-  name = g_base_info_get_name ((GIBaseInfo *)info);
-  quark = g_error_domain_info_get_quark (info);
-  enum_ = (GIBaseInfo *)g_error_domain_info_get_codes (info);
-  xml_start_element (file, "errordomain");
-  xml_printf (file, " name=\"%s\" get-quark=\"%s\"",
-              name, quark);
-  write_type_name_attribute (namespace, enum_, "codes", file);
-  xml_end_element (file, "errordomain");
-  g_base_info_unref (enum_);
-}
-
-static void
 write_union_info (const gchar *namespace,
 		  GIUnionInfo *info,
 		  Xml         *file)
@@ -1411,10 +1375,6 @@ gir_writer_write (const char *filename,
 	      write_interface_info (ns, (GIInterfaceInfo *)info, xml);
 	      break;
 
-	    case GI_INFO_TYPE_ERROR_DOMAIN:
-	      write_error_domain_info (ns, (GIErrorDomainInfo *)info, xml);
-	      break;
-
 	    default:
 	      g_error ("unknown info type %d\n", g_base_info_get_type (info));
 	    }
diff --git a/girepository/gitypeinfo.c b/girepository/gitypeinfo.c
index 1bc9b0a..5864f82 100644
--- a/girepository/gitypeinfo.c
+++ b/girepository/gitypeinfo.c
@@ -340,72 +340,3 @@ g_type_info_get_array_type (GITypeInfo *info)
 
   return -1;
 }
-
-/**
- * g_type_info_get_n_error_domains:
- * @info: a #GITypeInfo
- *
- * Obtain the number of error domains for this type. The type tag
- * must be a #GI_TYPE_TAG_ERROR or -1 will be returned.
- *
- * Returns: number of error domains or -1
- */
-gint
-g_type_info_get_n_error_domains (GITypeInfo *info)
-{
-  GIRealInfo *rinfo = (GIRealInfo *)info;
-  SimpleTypeBlob *type;
-
-  g_return_val_if_fail (info != NULL, 0);
-  g_return_val_if_fail (GI_IS_TYPE_INFO (info), 0);
-
-  type = (SimpleTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
-  if (!(type->flags.reserved == 0 && type->flags.reserved2 == 0))
-    {
-      ErrorTypeBlob *blob = (ErrorTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
-      if (blob->tag == GI_TYPE_TAG_ERROR)
-	return blob->n_domains;
-    }
-
-  return 0;
-}
-
-/**
- * g_type_info_get_error_domain:
- * @info: a #GITypeInfo
- * @n: index of error domain
- *
- * Obtain the error domains at index @n for this type. The type tag
- * must be a #GI_TYPE_TAG_ERROR or -1 will be returned.
- *
- * Returns: (transfer full): the error domain or %NULL if type tag is wrong,
- * free the struct with g_base_info_unref() when done.
- */
-GIErrorDomainInfo *
-g_type_info_get_error_domain (GITypeInfo *info,
-                              gint        n)
-{
-  GIRealInfo *rinfo = (GIRealInfo *)info;
-  SimpleTypeBlob *type;
-
-  g_return_val_if_fail (info != NULL, NULL);
-  g_return_val_if_fail (GI_IS_TYPE_INFO (info), NULL);
-
-  type = (SimpleTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
-  if (!(type->flags.reserved == 0 && type->flags.reserved2 == 0))
-    {
-      ErrorTypeBlob *blob = (ErrorTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
-      if (blob->tag == GI_TYPE_TAG_ERROR)
-        return (GIErrorDomainInfo *) _g_info_from_entry (rinfo->repository,
-                                                         rinfo->typelib,
-                                                         blob->domains[n]);
-    }
-
-  return NULL;
-}
-
-
diff --git a/girepository/gitypeinfo.h b/girepository/gitypeinfo.h
index 5c4fc83..56e7309 100644
--- a/girepository/gitypeinfo.h
+++ b/girepository/gitypeinfo.h
@@ -48,9 +48,6 @@ gint                   g_type_info_get_array_fixed_size(GITypeInfo *info);
 gboolean               g_type_info_is_zero_terminated  (GITypeInfo *info);
 GIArrayType            g_type_info_get_array_type      (GITypeInfo *info);
 
-gint                   g_type_info_get_n_error_domains (GITypeInfo *info);
-GIErrorDomainInfo     *g_type_info_get_error_domain    (GITypeInfo *info,
-							gint       n);
 G_END_DECLS
 
 
diff --git a/girepository/gitypelib-internal.h b/girepository/gitypelib-internal.h
index 593c987..2bda8d9 100644
--- a/girepository/gitypelib-internal.h
+++ b/girepository/gitypelib-internal.h
@@ -57,7 +57,7 @@ G_BEGIN_DECLS
  * directory ::= list of entries
  *
  * entry ::= blob type, name, namespace, offset
- * blob ::= function|callback|struct|boxed|enum|flags|object|interface|constant|errordomain|union
+ * blob ::= function|callback|struct|boxed|enum|flags|object|interface|constant|union
  * attributes ::= list of attributes, sorted by offset
  * attribute ::= offset, key, value
  * attributedata ::= string data for attributes
@@ -156,7 +156,6 @@ Changes since 0.1:
  * @BLOB_TYPE_OBJECT: An #ObjectBlob
  * @BLOB_TYPE_INTERFACE: An #InterfaceBlob
  * @BLOB_TYPE_CONSTANT: A #ConstantBlob
- * @BLOB_TYPE_ERROR_DOMAIN: A #ErrorDomainBlob
  * @BLOB_TYPE_UNION: A #UnionBlob
  *
  * The integral value of this enumeration appears in each "Blob"
@@ -173,7 +172,7 @@ typedef enum {
   BLOB_TYPE_OBJECT,
   BLOB_TYPE_INTERFACE,
   BLOB_TYPE_CONSTANT,
-  BLOB_TYPE_ERROR_DOMAIN,
+  BLOB_TYPE_INVALID_0, /* DELETED - used to be ErrorDomain */
   BLOB_TYPE_UNION
 } GTypelibBlobType;
 
@@ -624,8 +623,6 @@ typedef struct {
 
 /**
  * ErrorTypeBlob:
- * @n_domains: The number of domains to follow
- * @domains:  Indices of the directory entries for the error domains
  */
 typedef struct {
   guint8  pointer  :1;
@@ -633,32 +630,12 @@ typedef struct {
   guint8  tag      :5;
 
   guint8  reserved2;
-  guint16 n_domains;
 
+  guint16 n_domains; /* Must be 0 */
   guint16 domains[];
 }  ErrorTypeBlob;
 
 /**
- * ErrorDomainBlob:
- * @get_quark: The symbol name of the function which must be called to obtain the
- * GQuark for the error domain.
- * @error_codes: Index of the InterfaceBlob describing the enumeration which lists
- * the possible error codes.
- */
-typedef struct {
-  guint16 blob_type;  /* 10 */
-
-  guint16 deprecated : 1;
-  guint16 reserved   :15;
-
-  guint32 name;
-
-  guint32 get_quark;
-  guint16 error_codes;
-  guint16 reserved2;
-} ErrorDomainBlob;
-
-/**
  * ValueBlob:
  * @deprecated: Whether this value is deprecated
  * @unsigned_value: if set, value is a 32-bit unsigned integer cast to gint32
diff --git a/girepository/gitypelib.c b/girepository/gitypelib.c
index 6d1333b..3869a6d 100644
--- a/girepository/gitypelib.c
+++ b/girepository/gitypelib.c
@@ -284,7 +284,6 @@ g_typelib_check_sanity (void)
   CHECK_SIZE (ArrayTypeBlob, 8);
   CHECK_SIZE (ParamTypeBlob, 4);
   CHECK_SIZE (ErrorTypeBlob, 4);
-  CHECK_SIZE (ErrorDomainBlob, 16);
   CHECK_SIZE (ValueBlob, 12);
   CHECK_SIZE (FieldBlob, 16);
   CHECK_SIZE (RegisteredTypeBlob, 16);
@@ -446,7 +445,6 @@ validate_header_basic (const guint8   *memory,
       header->field_blob_size != sizeof (FieldBlob) ||
       header->value_blob_size != sizeof (ValueBlob) ||
       header->constant_blob_size != sizeof (ConstantBlob) ||
-      header->error_domain_blob_size != sizeof (ErrorDomainBlob) ||
       header->attribute_blob_size != sizeof (AttributeBlob) ||
       header->signature_blob_size != sizeof (SignatureBlob) ||
       header->enum_blob_size != sizeof (EnumBlob) ||
@@ -607,8 +605,6 @@ validate_error_type_blob (GITypelib     *typelib,
 {
   ErrorTypeBlob *blob;
   Header *header;
-  gint i;
-  DirEntry *entry;
 
   blob = (ErrorTypeBlob*)&typelib->data[offset];
 
@@ -623,30 +619,6 @@ validate_error_type_blob (GITypelib     *typelib,
       return FALSE;
     }
 
-  for (i = 0; i < blob->n_domains; i++)
-    {
-      if (blob->domains[i] == 0 || blob->domains[i] > header->n_entries)
-	{
-	  g_set_error (error,
-		       G_TYPELIB_ERROR,
-		       G_TYPELIB_ERROR_INVALID_BLOB,
-		       "Invalid directory index %d", blob->domains[i]);
-	  return FALSE;
-	}
-
-      entry = g_typelib_get_dir_entry (typelib, blob->domains[i]);
-
-      if (entry->blob_type != BLOB_TYPE_ERROR_DOMAIN &&
-	  (entry->local || entry->blob_type != BLOB_TYPE_INVALID))
-	{
-	  g_set_error (error,
-		       G_TYPELIB_ERROR,
-		       G_TYPELIB_ERROR_INVALID_BLOB,
-		       "Wrong blob type");
-	  return FALSE;
-	}
-    }
-
   return TRUE;
 }
 
@@ -1825,14 +1797,6 @@ validate_interface_blob (ValidateContext *ctx,
 }
 
 static gboolean
-validate_errordomain_blob (GITypelib     *typelib,
-			   guint32        offset,
-			   GError       **error)
-{
-  return TRUE;
-}
-
-static gboolean
 validate_union_blob (GITypelib     *typelib,
 		     guint32        offset,
 		     GError       **error)
@@ -1891,10 +1855,6 @@ validate_blob (ValidateContext *ctx,
       if (!validate_constant_blob (typelib, offset, error))
 	return FALSE;
       break;
-    case BLOB_TYPE_ERROR_DOMAIN:
-      if (!validate_errordomain_blob (typelib, offset, error))
-	return FALSE;
-      break;
     case BLOB_TYPE_UNION:
       if (!validate_union_blob (typelib, offset, error))
 	return FALSE;
diff --git a/girepository/gitypes.h b/girepository/gitypes.h
index d15b121..cbe4316 100644
--- a/girepository/gitypes.h
+++ b/girepository/gitypes.h
@@ -151,13 +151,6 @@ typedef GIBaseInfo GIArgInfo;
 typedef GIBaseInfo GITypeInfo;
 
 /**
- * GIErrorDomainInfo:
- *
- * Represents a #GError error domain.
- */
-typedef GIBaseInfo GIErrorDomainInfo;
-
-/**
  * GIUnresolvedInfo:
  *
  * Represents a unresolved type in a typelib.
@@ -202,7 +195,6 @@ typedef union _GIArgument GIArgument;
  * @GI_INFO_TYPE_OBJECT: object, see #GIObjectInfo
  * @GI_INFO_TYPE_INTERFACE: interface, see #GIInterfaceInfo
  * @GI_INFO_TYPE_CONSTANT: contant, see #GIConstantInfo
- * @GI_INFO_TYPE_ERROR_DOMAIN: error domain for a #GError, see #GIErrorDomainInfo
  * @GI_INFO_TYPE_UNION: union, see #GIUnionInfo
  * @GI_INFO_TYPE_VALUE: enum value, see #GIValueInfo
  * @GI_INFO_TYPE_SIGNAL: signal, see #GISignalInfo
@@ -228,7 +220,7 @@ typedef enum
   GI_INFO_TYPE_OBJECT,
   GI_INFO_TYPE_INTERFACE,
   GI_INFO_TYPE_CONSTANT,
-  GI_INFO_TYPE_ERROR_DOMAIN, /* 10 */
+  GI_INFO_TYPE_INVALID_0,    /* 10 */  /** DELETED - used to be ERROR_DOMAIN **/
   GI_INFO_TYPE_UNION,
   GI_INFO_TYPE_VALUE,
   GI_INFO_TYPE_SIGNAL,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]