jasons      2002/08/27 12:40:37

  Modified:    perl     typemaps.i
  Log:
        * typemaps.i (Repository):
        fixed comments
        typemaps are no longer language specific
        finally fixed STRLEN problem for 64bit OS's
        IDOM => DOM
  
  Revision  Changes    Path
  1.12      +48 -62    xml-xerces/perl/typemaps.i
  
  Index: typemaps.i
  ===================================================================
  RCS file: /home/cvs/xml-xerces/perl/typemaps.i,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- typemaps.i        25 Apr 2002 01:54:35 -0000      1.11
  +++ typemaps.i        27 Aug 2002 19:40:37 -0000      1.12
  @@ -19,13 +19,7 @@
   /* CREATED IN THE in TYPEMAP TO POINT TO MEMORY THAT HOLDS THE          */
   /* CONVERSION.  THE MEMORY IS DYNAMIC, SO IT MUST BE FREED AFTER THE C  */
   /* FUNCTION THAT USES IT IS CALLED.  THIS IS DONE VIA A "freearg"       */
  -/* TYPEMAP.  IT IS MAJORLY KLUDGY, BUT IT WORKS.                        */
  -/*                                                                      */
  -/* ONE PROBLEM:  A FEW XERCES FUNCTIONS TAKE MULTIPLE ARGUMENTS OF      */
  -/* TYPE XMLCh STRING.  THEREFORE, A DIFFERENT TEMPORARY VARIABLE MUST   */
  -/* BE USED FOR EACH ONE.  THIS IS ACCOMPLISHED BY MAKING SEPERATE       */
  -/* in AND freearg TYPEMAPS FOR EACH ARGUMENT OF A GIVEN NAME. ONCE      */
  -/* AGAIN, THIS IS KLUDGY, BUT IT WORKS.                                 */
  +/* TYPEMAP.                                                             */
   /*                                                                      */
   /************************************************************************/
   
  @@ -108,12 +102,8 @@
   }
   %}
   
  -/********************/
  -/*                  */
  -/* GENERIC ARGUMENT */
  -/*                  */
  -/********************/
  -%typemap(perl5, in) XMLCh * {
  +// in typemap
  +%typemap(in) XMLCh * {
     if (SvPOK($input)||SvIOK($input)||SvNOK($input)) {
       $1 = Perl2XMLString($input);
     } else {
  @@ -122,15 +112,12 @@
     }
   }
   
  -%typemap(perl5, freearg) XMLCh * {
  +%typemap(freearg) XMLCh * {
     delete[] $1;
   }
   
  -// 
  -// RETURN VALUE OF getMessage METHOD ON A saxException (WHAT A 
  -// perlErrorHandler) FUNCTION SUCH AS "warning" RECEIVES AS AN ARGUMENT
  -// 
  -%typemap(perl5, out) XMLCh * {
  +// out typemap
  +%typemap(out) XMLCh * {
     $result = XMLString2Perl($1);
     ++argvi;
   }
  @@ -145,26 +132,26 @@
   // CONSTRUCTOR
   // 
   
  -%typemap(perl5, in) (const XMLByte* const srcDocBytes, unsigned int byteCount) {
  +%typemap(in) (const XMLByte* const srcDocBytes, unsigned int byteCount) {
     if (SvPOK($input)||SvIOK($input)||SvNOK($input)) {
  -    XMLByte *xmlbytes = (XMLByte *)SvPV($input, $2);
  -    $1 = new XMLByte[$2];
  -    memcpy($1, xmlbytes, $2);
  +    STRLEN len;
  +    XMLByte *xmlbytes = (XMLByte *)SvPV($input, len);
  +    $2 = len;
  +    $1 = new XMLByte[len];
  +    memcpy($1, xmlbytes, len);
     } else {
       croak("Type error in argument 2 of $symname, Expected perl-string.");
       XSRETURN(1);
     }
   }
   
  -// PERL SHOULD IGNORE THIS ARGUMENT -- CALCULATE IN KLUDGE ABOVE FOR 
MemBufInputSource 
  -%typemap(perl5, ignore) const unsigned int byteCount {
  -}
  +// PERL SHOULD IGNORE THIS ARGUMENT 
  +%typemap(ignore) const unsigned int byteCount {}
   
   // 
   // FOR Perl*Handler MEMBER FUNCTIONS, SO PERL SCALAR DOESN'T GET WRAPPED 
  -// BY SWIG
   // 
  -%typemap(perl5, in) SV * {
  +%typemap(in) SV * {
     $1 = $input;
   }
   
  @@ -172,59 +159,58 @@
   // IDOM_Node*
   //
   
  -%typemap(out) IDOM_Node* {
  -    swig_type_info *ty = SWIG_TypeDynamicCast($1_descriptor, (void **) &$1);
  -    ST(argvi) = sv_newmortal();
  -    SWIG_MakePtr(ST(argvi++), (void *) result, ty);
  -}
  -
  -// %typemap(out) IDOM_Node * = SWIGTYPE *DYNAMIC;
  +// %typemap(out) DOMNode* {
  +//     swig_type_info *ty = SWIG_TypeDynamicCast($1_descriptor, (void **) &$1);
  +//     ST(argvi) = sv_newmortal();
  +//     SWIG_MakePtr(ST(argvi++), (void *) result, ty,0);
  +// }
  +%typemap(out) DOMNode * = SWIGTYPE *DYNAMIC;
   
  -DYNAMIC_CAST(SWIGTYPE_p_IDOM_Node, IDOM_Node_dynamic_cast);
  +DYNAMIC_CAST(SWIGTYPE_p_DOMNode, DOMNode_dynamic_cast);
   
   %{
   static swig_type_info *
  -IDOM_Node_dynamic_cast(void **ptr) {
  -   IDOM_Node **nptr = (IDOM_Node **) ptr;
  +DOMNode_dynamic_cast(void **ptr) {
  +   DOMNode **nptr = (DOMNode **) ptr;
      if (*nptr == NULL) {
          return NULL;
      }
      short int type = (*nptr)->getNodeType();
  -   if (type == IDOM_Node::TEXT_NODE) {
  -      return SWIGTYPE_p_IDOM_Text;
  +   if (type == DOMNode::TEXT_NODE) {
  +      return SWIGTYPE_p_DOMText;
      }
  -   if (type == IDOM_Node::PROCESSING_INSTRUCTION_NODE) {
  -      return SWIGTYPE_p_IDOM_ProcessingInstruction;
  +   if (type == DOMNode::PROCESSING_INSTRUCTION_NODE) {
  +      return SWIGTYPE_p_DOMProcessingInstruction;
      }
  -   if (type == IDOM_Node::DOCUMENT_NODE) {
  -      return SWIGTYPE_p_IDOM_Document;
  +   if (type == DOMNode::DOCUMENT_NODE) {
  +      return SWIGTYPE_p_DOMDocument;
      }
  -   if (type == IDOM_Node::ELEMENT_NODE) {
  -      return SWIGTYPE_p_IDOM_Element;
  +   if (type == DOMNode::ELEMENT_NODE) {
  +      return SWIGTYPE_p_DOMElement;
      }
  -   if (type == IDOM_Node::ENTITY_REFERENCE_NODE) {
  -      return SWIGTYPE_p_IDOM_EntityReference;
  +   if (type == DOMNode::ENTITY_REFERENCE_NODE) {
  +      return SWIGTYPE_p_DOMEntityReference;
      }
  -   if (type == IDOM_Node::CDATA_SECTION_NODE) {
  -      return SWIGTYPE_p_IDOM_CDATASection;
  +   if (type == DOMNode::CDATA_SECTION_NODE) {
  +      return SWIGTYPE_p_DOMCDATASection;
      }
  -   if (type == IDOM_Node::CDATA_SECTION_NODE) {
  -      return SWIGTYPE_p_IDOM_CDATASection;
  +   if (type == DOMNode::CDATA_SECTION_NODE) {
  +      return SWIGTYPE_p_DOMCDATASection;
      }
  -   if (type == IDOM_Node::COMMENT_NODE) {
  -      return SWIGTYPE_p_IDOM_Comment;
  +   if (type == DOMNode::COMMENT_NODE) {
  +      return SWIGTYPE_p_DOMComment;
      }
  -   if (type == IDOM_Node::DOCUMENT_TYPE_NODE) {
  -      return SWIGTYPE_p_IDOM_DocumentType;
  +   if (type == DOMNode::DOCUMENT_TYPE_NODE) {
  +      return SWIGTYPE_p_DOMDocumentType;
      }
  -   if (type == IDOM_Node::ENTITY_NODE) {
  -      return SWIGTYPE_p_IDOM_Entity;
  +   if (type == DOMNode::ENTITY_NODE) {
  +      return SWIGTYPE_p_DOMEntity;
      }
  -   if (type == IDOM_Node::ATTRIBUTE_NODE) {
  -      return SWIGTYPE_p_IDOM_Attr;
  +   if (type == DOMNode::ATTRIBUTE_NODE) {
  +      return SWIGTYPE_p_DOMAttr;
      }
  -   if (type == IDOM_Node::NOTATION_NODE) {
  -      return SWIGTYPE_p_IDOM_Notation;
  +   if (type == DOMNode::NOTATION_NODE) {
  +      return SWIGTYPE_p_DOMNotation;
      }
      return NULL;
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to