WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] tools: libxl: remove Reference meta-type

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] tools: libxl: remove Reference meta-type from IDL
From: Xen patchbot-unstable <patchbot@xxxxxxx>
Date: Fri, 29 Apr 2011 01:55:25 +0100
Delivery-date: Thu, 28 Apr 2011 18:01:35 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1303315987 -3600
# Node ID 7c309acc7e3f1a70821ade95560c657663f3d0f4
# Parent  a086a6d6c372bd3234da24b3f6c064452a6865d1
tools: libxl: remove Reference meta-type from IDL

It is tricky to map to language bindings and is now unused in any case.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
---


diff -r a086a6d6c372 -r 7c309acc7e3f tools/libxl/gentypes.py
--- a/tools/libxl/gentypes.py   Wed Apr 20 17:13:07 2011 +0100
+++ b/tools/libxl/gentypes.py   Wed Apr 20 17:13:07 2011 +0100
@@ -78,13 +78,13 @@
         raise NotImplementedError("%s" % type(ty))
     return s.replace("\n", "\n%s" % indent)
 
-def libxl_C_type_destroy(ty, v, reference, indent = "    ", parent = None):
-    if reference:
+def libxl_C_type_destroy(ty, v, indent = "    ", parent = None):
+    if parent is None:
         deref = v + "->"
     else:
         deref = v + "."
         
-    if ty.passby == libxltypes.PASS_BY_REFERENCE and not reference:
+    if ty.passby == libxltypes.PASS_BY_REFERENCE and parent is not None:
         makeref = "&"
     else:
         makeref = ""
@@ -96,19 +96,15 @@
         for f in ty.fields:
             keyvar_expr = f.keyvar_expr % (parent + ty.keyvar_name)
             s += "if (" + keyvar_expr + ") {\n"
-            s += libxl_C_type_destroy(f.type, deref + f.name, False, indent + 
"    ", deref)
+            s += libxl_C_type_destroy(f.type, deref + f.name, indent + "    ", 
deref)
             s += "}\n"
-    elif isinstance(ty, libxltypes.Reference):
-        s += libxl_C_type_destroy(ty.ref_type, v, True, indent, v)
-        if ty.destructor_fn is not None:
-            s += "%s(%s);\n" % (ty.destructor_fn, makeref + v)
     elif isinstance(ty, libxltypes.Struct) and (parent is None or 
ty.destructor_fn is None):
         for f in [f for f in ty.fields if not f.const]:
 
             if f.name is None: # Anonynous struct
-                s += libxl_C_type_destroy(f.type, deref, False, "", deref)
+                s += libxl_C_type_destroy(f.type, deref, "", deref)
             else:
-                s += libxl_C_type_destroy(f.type, deref + f.name, False, "", 
deref)
+                s += libxl_C_type_destroy(f.type, deref + f.name, "", deref)
     else:
         if ty.destructor_fn is not None:
             s += "%s(%s);\n" % (ty.destructor_fn, makeref + v)
@@ -177,7 +173,7 @@
     for ty in [t for t in types if t.destructor_fn is not None and 
t.autogenerate_destructor]:
         f.write("void %s(%s *p)\n" % (ty.destructor_fn, ty.typename))
         f.write("{\n")
-        f.write(libxl_C_type_destroy(ty, "p", True))
+        f.write(libxl_C_type_destroy(ty, "p"))
         f.write("    memset(p, LIBXL_DTOR_POISON, sizeof(*p));\n")
         f.write("}\n")
         f.write("\n")
diff -r a086a6d6c372 -r 7c309acc7e3f tools/libxl/idl.txt
--- a/tools/libxl/idl.txt       Wed Apr 20 17:13:07 2011 +0100
+++ b/tools/libxl/idl.txt       Wed Apr 20 17:13:07 2011 +0100
@@ -64,13 +64,6 @@
  The <N> for a given instance must be passed to the constructor and is
  then available in UInt.width
 
-libxltype.Reference
-
- Instances of this type represent a reference to another type
-
- The referant type must be passed to the constructor and is then
- available in Reference.ref_type
-
 Complex type-Classes
 --------------------
 
diff -r a086a6d6c372 -r 7c309acc7e3f tools/libxl/libxltypes.py
--- a/tools/libxl/libxltypes.py Wed Apr 20 17:13:07 2011 +0100
+++ b/tools/libxl/libxltypes.py Wed Apr 20 17:13:07 2011 +0100
@@ -153,24 +153,6 @@
             n, kve, ty = f
             self.fields.append(Field(ty, n, keyvar_expr=kve))
 
-class Reference(Type):
-    """A reference to another type"""
-    def __init__(self, ty, **kwargs):
-        self.ref_type = ty
-        
-        # Ugh
-        
-        kwargs.setdefault('destructor_fn', "free")
-        kwargs.setdefault('autogenerate_destructor', False)
-        kwargs.setdefault('passby', PASS_BY_VALUE)
-        
-        kwargs.setdefault('namespace', ty.namespace)
-
-        typename = ty.typename
-        if ty.namespace:
-            typename = typename[len(kwargs['namespace']):]
-        Type.__init__(self, typename + " *", **kwargs)
-
 #
 # Standard Types
 #

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] tools: libxl: remove Reference meta-type from IDL, Xen patchbot-unstable <=