[coyotos-dev] Capidl header generation bug?

Nathaniel W Filardo nwf at cs.jhu.edu
Fri Nov 2 15:33:46 EDT 2007


Building IoStream.h from IoStream.idl seems to produce a buggy header file,
with unterminated #ifndef directives.  The tail of the .h file reads :

/* Method coyotos_IoStream_write is client-only */
#ifndef __ASSEMBLER__
#ifndef __KERNEL__
typedef union {
  struct {

/* ... [snippy snip snip; no cpp directives here] ... */

extern bool
coyotos_IoStream_write(caploc_t _invCap, coyotos_IoStream_chString *s,
uint32_t *_retVal)
;
#endif /* __ASSEMBLER__ */


/* END Interface coyotos.IoStream */

#endif /* __coyotos_IoStream_h__ */

I believe the correct fix to capidl is:

--- a/src/ccs/capidl/backend/o_c_hdr.cxx        Fri Nov 02 13:40:39 2007 -0400
+++ b/src/ccs/capidl/backend/o_c_hdr.cxx        Fri Nov 02 15:28:35 2007 -0400
@@ -1674,11 +1674,11 @@ emit_client_stub(GCPtr<Symbol> s, INOstr

     out.less();
     out << "}\n";
-    {
-      size_t indent = out.indent_for_macro();
-      out << "#endif /* !__KERNEL__ */\n";
-      out.indent(indent);
-    }
+  }
+  {
+    size_t indent = out.indent_for_macro();
+    out << "#endif /* !__KERNEL__ */\n";
+    out.indent(indent);
   }
 }

Apologies if that is in fact an error.  I don't have any consumers of the
interface building yet.

--nwf;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 185 bytes
Desc: not available
Url : http://www.coyotos.org/pipermail/coyotos-dev/attachments/20071102/cf015764/attachment.bin 


More information about the coyotos-dev mailing list