From a3756773721ddabf56ede66d3dd000c8b1a5aa23 Mon Sep 17 00:00:00 2001 From: Art Yerkes Date: Sat, 1 Nov 2003 05:01:07 +0000 Subject: [PATCH] Committing my latest ocaml.cxx. Corrects problem with shapes. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5228 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Source/Modules/ocaml.cxx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Source/Modules/ocaml.cxx b/Source/Modules/ocaml.cxx index 4cce776c9..8fa1a0173 100755 --- a/Source/Modules/ocaml.cxx +++ b/Source/Modules/ocaml.cxx @@ -1615,11 +1615,13 @@ public: Printf(classname, "SwigDirector_%s", supername); /* insert self and disown parameters */ - Parm *p, *ip; + Parm *p, *q, *ip; ParmList *superparms = Getattr(n, "parms"); ParmList *parms = CopyParmList(superparms); String *type = NewString("CAML_VALUE"); p = NewParm(type, NewString("self")); + q = Copy(p); + set_nextSibling(q, superparms); set_nextSibling(p, parms); parms = p; for (ip = parms; nextSibling(ip); ) ip = nextSibling(ip); @@ -1654,12 +1656,15 @@ public: Delete(target); } + Setattr(n,"parms",q); + Language::classDirectorConstructor(n); + Delete(sub); Delete(classname); Delete(supername); - Delete(parms); - - return Language::classDirectorConstructor(n); + //Delete(parms); + + return SWIG_OK; } /* ------------------------------------------------------------ @@ -1671,11 +1676,12 @@ public: classname = Swig_class_name(n); /* insert self and disown parameters */ - Parm *p, *ip; + Parm *p, *q, *ip; ParmList *superparms = Getattr(n, "parms"); ParmList *parms = CopyParmList(superparms); String *type = NewString("CAML_VALUE"); p = NewParm(type, NewString("self")); + q = Copy(p); set_nextSibling(p, parms); parms = p; for (ip = parms; nextSibling(ip); ) ip = nextSibling(ip); @@ -1693,6 +1699,7 @@ public: } Printf(f_directors_h, " SwigDirector_%s(CAML_VALUE self, bool disown = true);\n", classname); Delete(classname); + Setattr(n,"parms",q); return Language::classDirectorDefaultConstructor(n); }