dbertoni    02/05/14 08:47:15

  Modified:    c/src/XSLT StylesheetHandler.cpp StylesheetHandler.hpp
  Log:
  Make sure all appends go through checking code.
  
  Revision  Changes    Path
  1.79      +44 -6     xml-xalan/c/src/XSLT/StylesheetHandler.cpp
  
  Index: StylesheetHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetHandler.cpp,v
  retrieving revision 1.78
  retrieving revision 1.79
  diff -u -r1.78 -r1.79
  --- StylesheetHandler.cpp     8 May 2002 21:02:26 -0000       1.78
  +++ StylesheetHandler.cpp     14 May 2002 15:47:15 -0000      1.79
  @@ -2,7 +2,7 @@
    * The Apache Software License, Version 1.1
    *
    *
  - * Copyright (c) 1999 The Apache Software Foundation.  All rights 
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights 
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -1337,10 +1337,33 @@
   
   void
   StylesheetHandler::appendChildElementToParent(
  +                     ElemTemplateElement*    parent,
  +                     ElemTemplateElement*    elem)
  +{
  +     assert(elem != 0);
  +
  +     appendChildElementToParent(parent, elem, elem->getLocator());
  +}
  +
  +
  +
  +void
  +StylesheetHandler::appendChildElementToParent(
  +                     ElemTemplateElement*    elem,
  +                     const Locator*                  locator)
  +{
  +     appendChildElementToParent(m_elemStack.back(), elem, locator);
  +}
  +
  +
  +
  +void
  +StylesheetHandler::appendChildElementToParent(
  +                     ElemTemplateElement*    parent,
                        ElemTemplateElement*    elem,
                        const Locator*                  locator)
   {
  -     ElemTemplateElement* const      parent = m_elemStack.back();
  +     assert(parent != 0 && elem != 0);
   
        try
        {
  @@ -1363,8 +1386,7 @@
                        XalanDOMString  theMessage(elem->getElementName());
   #endif
   
  -                     append(theMessage, " is not a valid child of ");
  -                     append(theMessage, parent->getElementName());
  +                     append(theMessage, " is not allowed at this position in the 
stylesheet");
   
                        error(theMessage, locator);
                }
  @@ -1790,12 +1812,21 @@
                {
                        while(!m_whiteSpaceElems.empty())
                        {
  -                             parent->appendChildElem(m_whiteSpaceElems.back());
  +#if 1
  +                             assert(m_whiteSpaceElems.back() != 0);
   
  +                             appendChildElementToParent(
  +                                     parent,
  +                                     m_whiteSpaceElems.back());
  +#else
  +                             parent->appendChildElem(m_whiteSpaceElems.back());
  +#endif
                                m_whiteSpaceElems.pop_back();
                        }
   
  -                     parent->appendChildElem(elem.get());
  +                     appendChildElementToParent(
  +                             parent,
  +                             elem.get());
   
                        elem.release();
                }
  @@ -1816,7 +1847,14 @@
   
                                if(isPrevCharData && ! isLastPoppedXSLText)
                                {
  +#if 1
  +                                     appendChildElementToParent(
  +                                             parent,
  +                                             elem.get());
  +
  +#else
                                        parent->appendChildElem(elem.get());
  +#endif
   
                                        elem.release();
   
  
  
  
  1.32      +12 -1     xml-xalan/c/src/XSLT/StylesheetHandler.hpp
  
  Index: StylesheetHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetHandler.hpp,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- StylesheetHandler.hpp     26 Sep 2001 21:30:23 -0000      1.31
  +++ StylesheetHandler.hpp     14 May 2002 15:47:15 -0000      1.32
  @@ -2,7 +2,7 @@
    * The Apache Software License, Version 1.1
    *
    *
  - * Copyright (c) 1999 The Apache Software Foundation.  All rights 
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights 
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -493,6 +493,17 @@
   
        void
        appendChildElementToParent(
  +                     ElemTemplateElement*    elem,
  +                     const Locator*                  locator);
  +
  +     void
  +     appendChildElementToParent(
  +                     ElemTemplateElement*    parent,
  +                     ElemTemplateElement*    elem);
  +
  +     void
  +     appendChildElementToParent(
  +                     ElemTemplateElement*    parent,
                        ElemTemplateElement*    elem,
                        const Locator*                  locator);
   
  
  
  

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

Reply via email to