Blob Blame History Raw
diff --git a/src/bindings/javascript/local.i b/src/bindings/javascript/local.i
index 88af17d03b..b2f97590cf 100644
--- a/src/bindings/javascript/local.i
+++ b/src/bindings/javascript/local.i
@@ -213,53 +213,9 @@ namespace std
 }
 
 
-// ----------------------------------------------------------------------
-// takeover ownership
-// ----------------------------------------------------------------------
-
-/**
- * - void ListOf::appendAndOwn(SBase* item)
- */
-%apply SWIGTYPE *DISOWN {SBase* item};
-%apply SWIGTYPE * {const SBase* item};
-
-/**
- * - void ASTNode::addChild (ASTNode* child)
- * - void ASTNode::prependChild (ASTNode* child)
- */
-%apply SWIGTYPE *DISOWN {ASTNode* child};
-%apply SWIGTYPE * {const ASTNode* child};
-
-/**
- * - void ASTNode::insertChild  (unsigned int n, ASTNode* newChild)
- * - void ASTNode::replaceChild (unsigned int n, ASTNode* newChild)
- */
-%apply SWIGTYPE *DISOWN {ASTNode* newChild};
-%apply SWIGTYPE * {const ASTNode* newChild};
-
-/**
- * - void ASTNode::addSemanticsAnnotation (XMLNode* sAnnotation);
- */
-%apply SWIGTYPE *DISOWN {XMLNode* sAnnotation};
-%apply SWIGTYPE * {const XMLNode* sAnnotation};
-
-
 /**
  * Wraps the SBMLConstructorException
  *
- * The SBMLConstructorException (C++ class) is wrapped as the 
- * SBMLConsturctorException (Ruby class) which is derived from
- * the built-in ArgumentError class (Ruby class).
- *
- * For example, the exception can be catched in Ruby code as follows:
- *
- * -------------------------------------------------
- *  begin
- *    s = LibSBML::Compartment.new(level,version)
- *  rescue SBMLConstructorException
- *    errmsg = $! 
- *  end
- * -------------------------------------------------
  */
 
 %exceptionclass SBMLConstructorException;
diff --git a/src/bindings/perl/local.i b/src/bindings/perl/local.i
index 1c30b096b6..f60ef82cf1 100644
--- a/src/bindings/perl/local.i
+++ b/src/bindings/perl/local.i
@@ -68,72 +68,6 @@
 }
 
 /**
- * The features directives below override the default SWIG generated
- * code for certain methods.  The idea is to tell SWIG to disown the
- * passed-in object.  The containing object will takeover ownership
- * and delete the object as appropriate.  This avoids a deadly
- * double-delete which can result in a segmentation fault.  For
- * example, each SBase that is appended to a ListOf is subsequently
- * owned by that ListOf.
- */
-
-// ----------------------------------------------------------------------
-// ListOf
-// ----------------------------------------------------------------------
-
-%feature("shadow") ListOf::appendAndOwn(SBase*)
-%{
-  sub appendAndOwn {
-    $_[1]->DISOWN() if defined $_[1];
-    return LibSBMLc::ListOf_appendAndOwn(@_);
-  }
-%}
-
-// ----------------------------------------------------------------------
-// ASTNode
-// ----------------------------------------------------------------------
-
-%feature("shadow") ASTNode::addChild(ASTNode*)
-%{
-  sub addChild {
-    $_[1]->DISOWN() if defined $_[1];
-    return LibSBMLc::ASTNode_addChild(@_);
-  }
-%}
-
-%feature("shadow") ASTNode::prependChild(ASTNode*)
-%{
-  sub prependChild {
-    $_[1]->DISOWN() if defined $_[1];
-    return LibSBMLc::ASTNode_prependChild(@_);
-  }
-%}
-
-%feature("shadow") ASTNode::insertChild(unsigned int, ASTNode*)
-%{
-  sub insertChild {
-    $_[2]->DISOWN() if defined $_[2];
-    return LibSBMLc::ASTNode_insertChild(@_);
-  }
-%}
-
-%feature("shadow") ASTNode::replaceChild(unsigned int, ASTNode*)
-%{
-  sub replaceChild {
-    $_[2]->DISOWN() if defined $_[2];
-    return LibSBMLc::ASTNode_replaceChild(@_);
-  }
-%}
-
-%feature("shadow") ASTNode::addSemanticsAnnotation(XMLNode*)
-%{
-  sub addSemanticsAnnotation {
-    $_[1]->DISOWN() if defined $_[1];
-    return LibSBMLc::ASTNode_addSemanticsAnnotation(@_);
-  }
-%}
-
-/**
  * Wraps standard output streams
  */
 
diff --git a/src/bindings/python/local.i b/src/bindings/python/local.i
index d2a6182c0f..435faf6330 100644
--- a/src/bindings/python/local.i
+++ b/src/bindings/python/local.i
@@ -365,51 +365,6 @@ SWIGPYTHON__CMP__(XMLError)
 SWIGPYTHON__CMP__(XMLErrorLog)
 SWIGPYTHON__CMP__(XMLOutputStream)
 
-/**
- * The features directives below override the default SWIG generated
- * code for certain methods.  The idea is to tell SWIG to disown the
- * passed-in object.  The containing object will takeover ownership
- * and delete the object as appropriate.  This avoids a deadly
- * double-delete which can result in a segmentation fault.  For
- * example, each SBase that is appended to a ListOf is subsequently
- * owned by that ListOf.
- */
-
-%define TAKEOVER_OWNERSHIP(METHOD_NAME,ARG_INDEX)
-%feature("pythonprepend")
-METHOD_NAME
-%{
-        if args[ARG_INDEX] is not None: args[ARG_INDEX].thisown = 0
-%}
-%enddef
-
-// ----------------------------------------------------------------------
-// ListOf
-// ----------------------------------------------------------------------
-
-#if SWIG_VERSION > 0x010336
-TAKEOVER_OWNERSHIP(ListOf::appendAndOwn(SBase*),0)
-#else
-TAKEOVER_OWNERSHIP(ListOf::appendAndOwn(SBase*),1)
-#endif
-
-// ----------------------------------------------------------------------
-// ASTNode
-// ----------------------------------------------------------------------
-
-#if SWIG_VERSION > 0x010336
-TAKEOVER_OWNERSHIP(ASTNode::addChild(ASTNode*),0)
-TAKEOVER_OWNERSHIP(ASTNode::prependChild(ASTNode*),0)
-TAKEOVER_OWNERSHIP(ASTNode::insertChild(unsigned int, ASTNode*),1)
-TAKEOVER_OWNERSHIP(ASTNode::replaceChild(unsigned int, ASTNode*),1)
-TAKEOVER_OWNERSHIP(ASTNode::addSemanticsAnnotation(XMLNode*),0)
-#else
-TAKEOVER_OWNERSHIP(ASTNode::addChild(ASTNode*),1)
-TAKEOVER_OWNERSHIP(ASTNode::prependChild(ASTNode*),1)
-TAKEOVER_OWNERSHIP(ASTNode::insertChild(unsigned int, ASTNode*),2)
-TAKEOVER_OWNERSHIP(ASTNode::replaceChild(unsigned int, ASTNode*),2)
-TAKEOVER_OWNERSHIP(ASTNode::addSemanticsAnnotation(XMLNode*),1)
-#endif
 
 /**
  *
diff --git a/src/bindings/r/local.i b/src/bindings/r/local.i
index 4a05db46cc..a87602d544 100644
--- a/src/bindings/r/local.i
+++ b/src/bindings/r/local.i
@@ -205,53 +205,8 @@ namespace std
 }
 
 
-// ----------------------------------------------------------------------
-// takeover ownership
-// ----------------------------------------------------------------------
-
-/**
- * - void ListOf::appendAndOwn(SBase* item)
- */
-%apply SWIGTYPE *DISOWN {SBase* item};
-%apply SWIGTYPE * {const SBase* item};
-
-/**
- * - void ASTNode::addChild (ASTNode* child)
- * - void ASTNode::prependChild (ASTNode* child)
- */
-%apply SWIGTYPE *DISOWN {ASTNode* child};
-%apply SWIGTYPE * {const ASTNode* child};
-
-/**
- * - void ASTNode::insertChild  (unsigned int n, ASTNode* newChild)
- * - void ASTNode::replaceChild (unsigned int n, ASTNode* newChild)
- */
-%apply SWIGTYPE *DISOWN {ASTNode* newChild};
-%apply SWIGTYPE * {const ASTNode* newChild};
-
-/**
- * - void ASTNode::addSemanticsAnnotation (XMLNode* sAnnotation);
- */
-%apply SWIGTYPE *DISOWN {XMLNode* sAnnotation};
-%apply SWIGTYPE * {const XMLNode* sAnnotation};
-
-
 /**
  * Wraps the SBMLConstructorException
- *
- * The SBMLConstructorException (C++ class) is wrapped as the 
- * SBMLConsturctorException (Ruby class) which is derived from
- * the built-in ArgumentError class (Ruby class).
- *
- * For example, the exception can be catched in Ruby code as follows:
- *
- * -------------------------------------------------
- *  begin
- *    s = LibSBML::Compartment.new(level,version)
- *  rescue SBMLConstructorException
- *    errmsg = $! 
- *  end
- * -------------------------------------------------
  */
 
 %exceptionclass SBMLConstructorException;
diff --git a/src/bindings/ruby/local.i b/src/bindings/ruby/local.i
index 39b3efe576..0f59a641fd 100644
--- a/src/bindings/ruby/local.i
+++ b/src/bindings/ruby/local.i
@@ -230,37 +230,6 @@ namespace std
 }
 
 
-// ----------------------------------------------------------------------
-// takeover ownership
-// ----------------------------------------------------------------------
-
-/**
- * - void ListOf::appendAndOwn(SBase* item)
- */
-%apply SWIGTYPE *DISOWN {SBase* item};
-%apply SWIGTYPE * {const SBase* item};
-
-/**
- * - void ASTNode::addChild (ASTNode* child)
- * - void ASTNode::prependChild (ASTNode* child)
- */
-%apply SWIGTYPE *DISOWN {ASTNode* child};
-%apply SWIGTYPE * {const ASTNode* child};
-
-/**
- * - void ASTNode::insertChild  (unsigned int n, ASTNode* newChild)
- * - void ASTNode::replaceChild (unsigned int n, ASTNode* newChild)
- */
-%apply SWIGTYPE *DISOWN {ASTNode* newChild};
-%apply SWIGTYPE * {const ASTNode* newChild};
-
-/**
- * - void ASTNode::addSemanticsAnnotation (XMLNode* sAnnotation);
- */
-%apply SWIGTYPE *DISOWN {XMLNode* sAnnotation};
-%apply SWIGTYPE * {const XMLNode* sAnnotation};
-
-
 /**
  * Wraps the SBMLConstructorException
  *
diff --git a/src/bindings/swig/libsbml.i b/src/bindings/swig/libsbml.i
index 30261421c8..27d6fedbdb 100644
--- a/src/bindings/swig/libsbml.i
+++ b/src/bindings/swig/libsbml.i
@@ -40,6 +40,17 @@
 
 #pragma SWIG nowarn=473,401,844
 
+// apply typemaps for items we manage manually
+%include "typemaps.i"
+
+%apply SWIGTYPE *DISOWN { SBase* disownedItem };
+%apply SWIGTYPE *DISOWN { SBase_t* disownedItem };
+%apply SWIGTYPE *DISOWN { XMLNode* disownedAnnotation };
+%apply SWIGTYPE *DISOWN { XMLNode_t* disownedAnnotation };
+%apply SWIGTYPE *DISOWN { ASTNode* disownedChild };
+%apply SWIGTYPE *DISOWN { ASTNode_t* disownedChild };
+%apply SWIGTYPE *DISOWN { SBMLNamespaces* disownedNs };
+
 %pragma(java) moduleclassmodifiers="
 /**
   * Wrapper class for global methods and constants defined by libSBML.
diff --git a/src/sbml/ListOf.h b/src/sbml/ListOf.h
index 830e9d21a8..838337b603 100644
--- a/src/sbml/ListOf.h
+++ b/src/sbml/ListOf.h
@@ -194,7 +194,7 @@ public:
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
    * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
    *
-   * @see appendAndOwn(SBase* item)
+   * @see appendAndOwn(SBase* disownedItem)
    * @see appendFrom(const ListOf* list)
    */
   int append (const SBase* item);
@@ -203,12 +203,12 @@ public:
   /**
    * Adds an item to the end of this ListOf's list of items.
    *
-   * This method does not clone the @p item handed to it; instead, it assumes
+   * This method does not clone the @p disownedItem handed to it; instead, it assumes
    * ownership of it.  This means that when the ListOf is destroyed, the item
    * will be destroyed along with it.  For a method with an alternative
    * ownership behavior, see the ListOf::append(SBase* item) method.
    *
-   * @param item the item to be added to the list.
+   * @param disownedItem the item to be added to the list.
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -217,7 +217,7 @@ public:
    * @see append(const SBase* item)
    * @see appendFrom(const ListOf* list)
    */
-  int appendAndOwn (SBase* item);
+  int appendAndOwn (SBase* disownedItem);
 
 
   /**
@@ -233,7 +233,7 @@ public:
    * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
    *
    * @see append(const SBase* item)
-   * @see appendAndOwn(SBase* item)
+   * @see appendAndOwn(SBase* disownedItem)
    */
   virtual int appendFrom (const ListOf* list);
 
@@ -260,12 +260,12 @@ public:
   /**
    * Inserts an item at a given position in this ListOf's list of items.
    *
-   * This variant of the method makes a clone of the @p item handed to it.
+   * This variant of the method does not make a clone of the @p disownedItem handed to it.
    * This means that when the ListOf is destroyed, the original @p item
    * <em>will</em> be destroyed.
    *
    * @param location the location where to insert the item
-   * @param item the item to be inserted to the list
+   * @param disownedItem the item to be inserted to the list
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -273,7 +273,7 @@ public:
    *
    * @see insert(int location, const SBase* item)
    */
-  int insertAndOwn(int location, SBase* item);
+  int insertAndOwn(int location, SBase* disownedItem);
 
 
   /**
@@ -674,10 +674,10 @@ ListOf_append (ListOf_t *lo, const SBase_t *item);
 /**
  * Adds the given item to the end of a ListOf_t list.
  *
- * @param lo the ListOf_t structure to which the @p item should be appended.
- * @param item the item to append to the list.
+ * @param lo the ListOf_t structure to which the @p disownedItem should be appended.
+ * @param disownedItem the item to append to the list.
  *
- * Unlike ListOf_append(), this function does not copy the @p item.
+ * Unlike ListOf_append(), this function does not copy the @p disownedItem.
  * The given @p lo list will contain the original item.
  *
  * @copydetails doc_returns_success_code
@@ -690,7 +690,7 @@ ListOf_append (ListOf_t *lo, const SBase_t *item);
  */
 LIBSBML_EXTERN
 int
-ListOf_appendAndOwn (ListOf_t *lo, SBase_t *item);
+ListOf_appendAndOwn (ListOf_t *lo, SBase_t *disownedItem);
 
 
 /**
@@ -731,12 +731,12 @@ ListOf_insert (ListOf_t *lo, int location, const SBase_t *item);
 /**
  * Inserts an item into a ListOf_t list at a given position.
  *
- * Unlike ListOf_insert(), this function does not clone @p item before
+ * Unlike ListOf_insert(), this function does not clone @p disownedItem before
  * inserting it into @p lo, which means that @p lo becomes the owner.
  *
- * @param lo the list into which @p item will be inserted.
- * @param location the starting index for the @p item in the @p lo list.
- * @param item the item to append to insert into @p lo.
+ * @param lo the list into which @p disownedItem will be inserted.
+ * @param location the starting index for the @p disownedItem in the @p lo list.
+ * @param disownedItem the item to append to insert into @p lo.
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -746,7 +746,7 @@ ListOf_insert (ListOf_t *lo, int location, const SBase_t *item);
  */
 LIBSBML_EXTERN
 int
-ListOf_insertAndOwn (ListOf_t *lo, int location, SBase_t *item);
+ListOf_insertAndOwn (ListOf_t *lo, int location, SBase_t *disownedItem);
 
 
 /**
diff --git a/src/sbml/SBase.h b/src/sbml/SBase.h
index e84e6c7927..32979a43d4 100644
--- a/src/sbml/SBase.h
+++ b/src/sbml/SBase.h
@@ -3042,7 +3042,7 @@ newModel.addSpecies(s1);
   int setSBMLNamespaces(SBMLNamespaces * sbmlns);
 
   /* sets the SBMLNamaepaces and owns the given object - internal use only */
-  void setSBMLNamespacesAndOwn(SBMLNamespaces * sbmlns);
+  void setSBMLNamespacesAndOwn(SBMLNamespaces * disownedNs);
   /** @endcond */
 
 
diff --git a/src/sbml/math-legacy/ASTNode.h b/src/sbml/math-legacy/ASTNode.h
index 901026569a..3de70313ff 100644
--- a/src/sbml/math-legacy/ASTNode.h
+++ b/src/sbml/math-legacy/ASTNode.h
@@ -389,7 +389,7 @@ public:
    *
    * Child nodes are added in-order, from left to right.
    *
-   * @param child the ASTNode instance to add
+   * @param disownedChild the ASTNode instance to add
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -397,21 +397,21 @@ public:
    *
    * @copydetails doc_warning_modifying_structure
    *
-   * @see prependChild(ASTNode* child)
-   * @see replaceChild(unsigned int n, ASTNode* child)
-   * @see insertChild(unsigned int n, ASTNode* child)
+   * @see prependChild(ASTNode* disownedChild)
+   * @see replaceChild(unsigned int n, ASTNode* disownedChild)
+   * @see insertChild(unsigned int n, ASTNode* disownedChild)
    * @see removeChild(unsigned int n)
    * @see isWellFormedASTNode()
    */
   LIBSBML_EXTERN
-  int addChild (ASTNode* child, bool inRead = false);
+  int addChild (ASTNode* disownedChild, bool inRead = false);
 
 
   /**
    * Adds the given node as a child of this ASTNode.  This method adds
    * child nodes from right to left.
    *
-   * @param child the ASTNode instance to add
+   * @param disownedChild the ASTNode instance to add
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -419,13 +419,13 @@ public:
    *
    * @copydetails doc_warning_modifying_structure
    *
-   * @see addChild(ASTNode* child)
-   * @see replaceChild(unsigned int n, ASTNode* child)
-   * @see insertChild(unsigned int n, ASTNode* child)
+   * @see addChild(ASTNode* disownedChild)
+   * @see replaceChild(unsigned int n, ASTNode* disownedChild)
+   * @see insertChild(unsigned int n, ASTNode* disownedChild)
    * @see removeChild(unsigned int n)
    */
   LIBSBML_EXTERN
-  int prependChild (ASTNode* child);
+  int prependChild (ASTNode* disownedChild);
 
 
   /**
@@ -439,10 +439,10 @@ public:
    *
    * @copydetails doc_warning_modifying_structure
    *
-   * @see addChild(ASTNode* child)
-   * @see prependChild(ASTNode* child)
-   * @see replaceChild(unsigned int n, ASTNode* child)
-   * @see insertChild(unsigned int n, ASTNode* child)
+   * @see addChild(ASTNode* disownedChild)
+   * @see prependChild(ASTNode* disownedChild)
+   * @see replaceChild(unsigned int n, ASTNode* disownedChild)
+   * @see insertChild(unsigned int n, ASTNode* disownedChild)
    */
   LIBSBML_EXTERN
   int removeChild(unsigned int n);
@@ -452,7 +452,7 @@ public:
    * Replaces and optionally deletes the nth child of this ASTNode with the given ASTNode.
    *
    * @param n unsigned int the index of the child to replace
-   * @param newChild ASTNode to replace the nth child
+   * @param disownedChild ASTNode to replace the nth child
    * @param delreplaced boolean indicating whether to delete the replaced child.
    *
    * @copydetails doc_returns_success_code
@@ -462,13 +462,13 @@ public:
    *
    * @copydetails doc_warning_modifying_structure
    *
-   * @see addChild(ASTNode* child)
-   * @see prependChild(ASTNode* child)
-   * @see insertChild(unsigned int n, ASTNode* child)
+   * @see addChild(ASTNode* disownedChild)
+   * @see prependChild(ASTNode* disownedChild)
+   * @see insertChild(unsigned int n, ASTNode* disownedChild)
    * @see removeChild(unsigned int n)
    */
   LIBSBML_EXTERN
-  int replaceChild(unsigned int n, ASTNode *newChild, bool delreplaced=false);
+  int replaceChild(unsigned int n, ASTNode *disownedChild, bool delreplaced=false);
 
 
   /**
@@ -476,7 +476,7 @@ public:
    * of this ASTNode.
    *
    * @param n unsigned int the index of the ASTNode being added
-   * @param newChild ASTNode to insert as the nth child
+   * @param disownedChild ASTNode to insert as the nth child
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -485,13 +485,13 @@ public:
    *
    * @copydetails doc_warning_modifying_structure
    *
-   * @see addChild(ASTNode* child)
-   * @see prependChild(ASTNode* child)
-   * @see replaceChild(unsigned int n, ASTNode* child)
+   * @see addChild(ASTNode* disownedChild)
+   * @see prependChild(ASTNode* disownedChild)
+   * @see replaceChild(unsigned int n, ASTNode* disownedChild)
    * @see removeChild(unsigned int n)
    */
   LIBSBML_EXTERN
-  int insertChild(unsigned int n, ASTNode *newChild);
+  int insertChild(unsigned int n, ASTNode *disownedChild);
 
 
   /**
@@ -571,7 +571,7 @@ getChild( getNumChildren() - 1 );
    *
    * @htmlinclude about-semantic-annotations.html
    *
-   * @param sAnnotation the annotation to add.
+   * @param disownedAnnotation the annotation to add.
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -589,7 +589,7 @@ getChild( getNumChildren() - 1 );
    * href="http://sbml.org/Forums">sbml-interoperability&#64;caltech.edu</a>.
    */
   LIBSBML_EXTERN
-  int addSemanticsAnnotation (XMLNode* sAnnotation);
+  int addSemanticsAnnotation (XMLNode* disownedAnnotation);
 
 
   /**
@@ -599,7 +599,7 @@ getChild( getNumChildren() - 1 );
    * 
    * @return the number of annotations of this ASTNode.
    *
-   * @see ASTNode::addSemanticsAnnotation(XMLNode* sAnnotation)
+   * @see ASTNode::addSemanticsAnnotation(XMLNode* disownedAnnotation)
    */
   LIBSBML_EXTERN
   unsigned int getNumSemanticsAnnotations () const;
@@ -615,7 +615,7 @@ getChild( getNumChildren() - 1 );
    * @if clike getNumSemanticsAnnotations()@else ASTNode::getNumSemanticsAnnotations()@endif@~
    * <code>- 1</code>).
    *
-   * @see ASTNode::addSemanticsAnnotation(XMLNode* sAnnotation)
+   * @see ASTNode::addSemanticsAnnotation(XMLNode* disownedAnnotation)
    */
   LIBSBML_EXTERN
   XMLNode* getSemanticsAnnotation (unsigned int n) const;
@@ -2043,7 +2043,7 @@ ASTNode_canonicalize (ASTNode_t *node);
  * Child nodes are added in order from "left-to-right".
  *
  * @param node the node which will get the new child node
- * @param child the ASTNode_t instance to add
+ * @param disownedChild the ASTNode_t instance to add
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -2062,7 +2062,7 @@ ASTNode_canonicalize (ASTNode_t *node);
  */
 LIBSBML_EXTERN
 int
-ASTNode_addChild (ASTNode_t *node, ASTNode_t *child);
+ASTNode_addChild (ASTNode_t *node, ASTNode_t *disownedChild);
 
 
 /**
@@ -2071,7 +2071,7 @@ ASTNode_addChild (ASTNode_t *node, ASTNode_t *child);
  * This method adds child nodes from right to left.
  *
  * @param node the node that will receive the given child node.
- * @param child the ASTNode_t instance to add.
+ * @param disownedChild the ASTNode_t instance to add.
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -2089,7 +2089,7 @@ ASTNode_addChild (ASTNode_t *node, ASTNode_t *child);
  */
 LIBSBML_EXTERN
 int
-ASTNode_prependChild (ASTNode_t *node, ASTNode_t *child);
+ASTNode_prependChild (ASTNode_t *node, ASTNode_t *disownedChild);
 
 
 /**
@@ -2123,7 +2123,7 @@ ASTNode_removeChild(ASTNode_t* node, unsigned int n);
  *
  * @param node the ASTNode_t node to modify
  * @param n unsigned int the index of the child to replace
- * @param newChild ASTNode_t structure to replace the nth child
+ * @param disownedChild ASTNode_t structure to replace the nth child
  *
  * @return integer value indicating success/failure of the
  * function.  The possible values returned by this function are:
@@ -2143,7 +2143,7 @@ ASTNode_removeChild(ASTNode_t* node, unsigned int n);
  */
 LIBSBML_EXTERN
 int
-ASTNode_replaceChild(ASTNode_t* node, unsigned int n, ASTNode_t * newChild);
+ASTNode_replaceChild(ASTNode_t* node, unsigned int n, ASTNode_t * disownedChild);
 
 
 /**
@@ -2151,7 +2151,7 @@ ASTNode_replaceChild(ASTNode_t* node, unsigned int n, ASTNode_t * newChild);
  *
  * @param node the ASTNode_t node to modify
  * @param n unsigned int the index of the child to replace
- * @param newChild ASTNode_t structure to replace the nth child
+ * @param disownedChild ASTNode_t structure to replace the nth child
  *
  * @return integer value indicating success/failure of the
  * function.  The possible values returned by this function are:
@@ -2171,7 +2171,7 @@ ASTNode_replaceChild(ASTNode_t* node, unsigned int n, ASTNode_t * newChild);
  */
 LIBSBML_EXTERN
 int
-ASTNode_replaceAndDeleteChild(ASTNode_t* node, unsigned int n, ASTNode_t * newChild);
+ASTNode_replaceAndDeleteChild(ASTNode_t* node, unsigned int n, ASTNode_t * disownedChild);
 
 
 /**
@@ -2179,9 +2179,9 @@ ASTNode_replaceAndDeleteChild(ASTNode_t* node, unsigned int n, ASTNode_t * newCh
  * node.
  *
  * @param node the ASTNode_t structure to modify.
- * @param n unsigned int the index of the location where the @p newChild is
+ * @param n unsigned int the index of the location where the @p disownedChild is
  * to be added.
- * @param newChild ASTNode_t structure to insert as the nth child.
+ * @param disownedChild ASTNode_t structure to insert as the nth child.
  *
  * @return integer value indicating success/failure of the
  * function.  The possible values returned by this function are:
@@ -2200,7 +2200,7 @@ ASTNode_replaceAndDeleteChild(ASTNode_t* node, unsigned int n, ASTNode_t * newCh
  */
 LIBSBML_EXTERN
 int
-ASTNode_insertChild(ASTNode_t* node, unsigned int n, ASTNode_t * newChild);
+ASTNode_insertChild(ASTNode_t* node, unsigned int n, ASTNode_t * disownedChild);
 
 
 /**
@@ -3568,7 +3568,7 @@ ASTNode_unsetParentSBMLObject(ASTNode_t* node);
  * @htmlinclude about-semantic-annotations.html
  *
  * @param node the node to modify
- * @param annotation the annotation to add
+ * @param disownedAnnotation the annotation to add
  *
  * @return integer value indicating success/failure of the
  * function.  The possible values returned by this function are:
@@ -3591,7 +3591,7 @@ ASTNode_unsetParentSBMLObject(ASTNode_t* node);
  */
 LIBSBML_EXTERN
 int
-ASTNode_addSemanticsAnnotation(ASTNode_t* node, XMLNode_t * annotation);
+ASTNode_addSemanticsAnnotation(ASTNode_t* node, XMLNode_t * disownedAnnotation);
 
 
 /**
diff --git a/src/sbml/math/ASTNode.h b/src/sbml/math/ASTNode.h
index 8fb9f77b9b..1c18ca28c0 100644
--- a/src/sbml/math/ASTNode.h
+++ b/src/sbml/math/ASTNode.h
@@ -307,7 +307,7 @@ public:
    *
    * Child nodes are added in-order, from left to right.
    *
-   * @param child the ASTNode instance to add
+   * @param disownedChild the ASTNode instance to add
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -315,13 +315,13 @@ public:
    *
    * @copydetails doc_warning_modifying_structure
    *
-   * @see prependChild(ASTNode* child)
-   * @see replaceChild(unsigned int n, ASTNode* child)
-   * @see insertChild(unsigned int n, ASTNode* child)
+   * @see prependChild(ASTNode* disownedChild)
+   * @see replaceChild(unsigned int n, ASTNode* disownedChild)
+   * @see insertChild(unsigned int n, ASTNode* disownedChild)
    * @see removeChild(unsigned int n)
    * @see isWellFormedASTNode()
    */
-  int addChild (ASTNode* child);
+  int addChild (ASTNode* disownedChild);
 
 
   /**
@@ -329,7 +329,7 @@ public:
    *
    * This method adds child nodes from right to left.
    *
-   * @param child the ASTNode instance to add
+   * @param disownedChild the ASTNode instance to add
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -337,12 +337,12 @@ public:
    *
    * @copydetails doc_warning_modifying_structure
    *
-   * @see addChild(ASTNode* child)
-   * @see replaceChild(unsigned int n, ASTNode* child)
-   * @see insertChild(unsigned int n, ASTNode* child)
+   * @see addChild(ASTNode* disownedChild)
+   * @see replaceChild(unsigned int n, ASTNode* disownedChild)
+   * @see insertChild(unsigned int n, ASTNode* disownedChild)
    * @see removeChild(unsigned int n)
    */
-  int prependChild (ASTNode* child);
+  int prependChild (ASTNode* disownedChild);
 
 
   /**
@@ -356,10 +356,10 @@ public:
    *
    * @copydetails doc_warning_modifying_structure
    *
-   * @see addChild(ASTNode* child)
-   * @see prependChild(ASTNode* child)
-   * @see replaceChild(unsigned int n, ASTNode* child)
-   * @see insertChild(unsigned int n, ASTNode* child)
+   * @see addChild(ASTNode* disownedChild)
+   * @see prependChild(ASTNode* disownedChild)
+   * @see replaceChild(unsigned int n, ASTNode* disownedChild)
+   * @see insertChild(unsigned int n, ASTNode* disownedChild)
    */
   int removeChild(unsigned int n);
 
@@ -368,7 +368,7 @@ public:
    * Replaces the nth child of this ASTNode with the given ASTNode.
    *
    * @param n unsigned int the index of the child to replace
-   * @param newChild ASTNode to replace the nth child
+   * @param disownedChild ASTNode to replace the nth child
    * @param delreplaced boolean indicating whether to delete the replaced child.
    *
    * @copydetails doc_returns_success_code
@@ -378,12 +378,12 @@ public:
    *
    * @copydetails doc_warning_modifying_structure
    *
-   * @see addChild(ASTNode* child)
-   * @see prependChild(ASTNode* child)
-   * @see insertChild(unsigned int n, ASTNode* child)
+   * @see addChild(ASTNode* disownedChild)
+   * @see prependChild(ASTNode* disownedChild)
+   * @see insertChild(unsigned int n, ASTNode* disownedChild)
    * @see removeChild(unsigned int n)
    */
-  int replaceChild(unsigned int n, ASTNode *newChild, bool delreplaced=false);
+  int replaceChild(unsigned int n, ASTNode *disownedChild, bool delreplaced=false);
 
 
   /**
@@ -391,7 +391,7 @@ public:
    * list of children.
    *
    * @param n unsigned int the index of the ASTNode being added
-   * @param newChild ASTNode to insert as the nth child
+   * @param disownedChild ASTNode to insert as the nth child
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -400,12 +400,12 @@ public:
    *
    * @copydetails doc_warning_modifying_structure
    *
-   * @see addChild(ASTNode* child)
-   * @see prependChild(ASTNode* child)
-   * @see replaceChild(unsigned int n, ASTNode* child)
+   * @see addChild(ASTNode* disownedChild)
+   * @see prependChild(ASTNode* disownedChild)
+   * @see replaceChild(unsigned int n, ASTNode* disownedChild)
    * @see removeChild(unsigned int n)
    */
-  int insertChild(unsigned int n, ASTNode *newChild);
+  int insertChild(unsigned int n, ASTNode *disownedChild);
 
 
   /**
@@ -481,7 +481,7 @@ getChild( getNumChildren() - 1 );
    *
    * @copydetails doc_about_mathml_semantic_annotations
    *
-   * @param sAnnotation the annotation to add.
+   * @param disownedAnnotation the annotation to add.
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -492,7 +492,7 @@ getChild( getNumChildren() - 1 );
    * @see ASTNode::getNumSemanticsAnnotations()
    * @see ASTNode::getSemanticsAnnotation(@if java unsigned int@endif)
    */
-  int addSemanticsAnnotation (XMLNode* sAnnotation);
+  int addSemanticsAnnotation (XMLNode* disownedAnnotation);
 
 
   /**
@@ -2123,7 +2123,7 @@ ASTNode_canonicalize (ASTNode_t *node);
  * Child nodes are added in order from "left-to-right".
  *
  * @param node the node which will get the new child node
- * @param child the ASTNode_t instance to add
+ * @param disownedChild the ASTNode_t instance to add
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
@@ -2142,7 +2142,7 @@ ASTNode_canonicalize (ASTNode_t *node);
  */
 LIBSBML_EXTERN
 int
-ASTNode_addChild (ASTNode_t *node, ASTNode_t *child);
+ASTNode_addChild (ASTNode_t *node, ASTNode_t *disownedChild);
 
 
 /**
@@ -2151,7 +2151,7 @@ ASTNode_addChild (ASTNode_t *node, ASTNode_t *child);
  * This method adds child nodes from right to left.
  *
  * @param node the node that will receive the given child node.
- * @param child the ASTNode_t instance to add.
+ * @param disownedChild the ASTNode_t instance to add.
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
@@ -2169,7 +2169,7 @@ ASTNode_addChild (ASTNode_t *node, ASTNode_t *child);
  */
 LIBSBML_EXTERN
 int
-ASTNode_prependChild (ASTNode_t *node, ASTNode_t *child);
+ASTNode_prependChild (ASTNode_t *node, ASTNode_t *disownedChild);
 
 
 /**
@@ -2202,7 +2202,7 @@ ASTNode_removeChild(ASTNode_t* node, unsigned int n);
  *
  * @param node the ASTNode_t node to modify
  * @param n unsigned int the index of the child to replace
- * @param newChild ASTNode_t structure to replace the nth child
+ * @param disownedChild ASTNode_t structure to replace the nth child
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_INDEX_EXCEEDS_SIZE, OperationReturnValues_t}
@@ -2221,7 +2221,7 @@ ASTNode_removeChild(ASTNode_t* node, unsigned int n);
  */
 LIBSBML_EXTERN
 int
-ASTNode_replaceChild(ASTNode_t* node, unsigned int n, ASTNode_t * newChild);
+ASTNode_replaceChild(ASTNode_t* node, unsigned int n, ASTNode_t * disownedChild);
 
 
 /**
@@ -2229,7 +2229,7 @@ ASTNode_replaceChild(ASTNode_t* node, unsigned int n, ASTNode_t * newChild);
  *
  * @param node the ASTNode_t node to modify
  * @param n unsigned int the index of the child to replace
- * @param newChild ASTNode_t structure to replace the nth child
+ * @param disownedChild ASTNode_t structure to replace the nth child
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_INDEX_EXCEEDS_SIZE, OperationReturnValues_t}
@@ -2248,7 +2248,7 @@ ASTNode_replaceChild(ASTNode_t* node, unsigned int n, ASTNode_t * newChild);
  */
 LIBSBML_EXTERN
 int
-ASTNode_replaceAndDeleteChild(ASTNode_t* node, unsigned int n, ASTNode_t * newChild);
+ASTNode_replaceAndDeleteChild(ASTNode_t* node, unsigned int n, ASTNode_t * disownedChild);
 
 
 /**
@@ -2256,9 +2256,9 @@ ASTNode_replaceAndDeleteChild(ASTNode_t* node, unsigned int n, ASTNode_t * newCh
  * node.
  *
  * @param node the ASTNode_t structure to modify.
- * @param n unsigned int the index of the location where the @p newChild is
+ * @param n unsigned int the index of the location where the @p disownedChild is
  * to be added.
- * @param newChild ASTNode_t structure to insert as the nth child.
+ * @param disownedChild ASTNode_t structure to insert as the nth child.
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_INDEX_EXCEEDS_SIZE, OperationReturnValues_t}
@@ -2276,7 +2276,7 @@ ASTNode_replaceAndDeleteChild(ASTNode_t* node, unsigned int n, ASTNode_t * newCh
  */
 LIBSBML_EXTERN
 int
-ASTNode_insertChild(ASTNode_t* node, unsigned int n, ASTNode_t * newChild);
+ASTNode_insertChild(ASTNode_t* node, unsigned int n, ASTNode_t * disownedChild);
 
 
 /**
@@ -3695,7 +3695,7 @@ ASTNode_unsetParentSBMLObject(ASTNode_t* node);
  * @copydetails doc_about_mathml_semantic_annotations
  *
  * @param node the node to modify
- * @param annotation the annotation to add
+ * @param disownedAnnotation the annotation to add
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
@@ -3708,7 +3708,7 @@ ASTNode_unsetParentSBMLObject(ASTNode_t* node);
  */
 LIBSBML_EXTERN
 int
-ASTNode_addSemanticsAnnotation(ASTNode_t* node, XMLNode_t * annotation);
+ASTNode_addSemanticsAnnotation(ASTNode_t* node, XMLNode_t * disownedAnnotation);
 
 
 /**
-- 
2.1.0