Fix for bug 163955 (Header cleanup for transformiix). r=sicking, rs=jst.

This commit is contained in:
peterv%netscape.com 2002-08-22 12:22:47 +00:00
Родитель 961ec590a8
Коммит 54147f5cfd
54 изменённых файлов: 105 добавлений и 453 удалений

Просмотреть файл

@ -27,10 +27,11 @@
#define MITRE_ERROROBSERVER_H
#include "baseutils.h"
#include "TxString.h"
#include "txError.h"
#include <iostream.h>
class String;
/**
* A simple interface for observing errors
**/

Просмотреть файл

@ -1,269 +0,0 @@
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is XSL:P XSLT processor.
*
* The Initial Developer of the Original Code is Keith Visco.
*
* Portions created by Keith Visco (C) 1999-2000 Keith Visco.
* All Rights Reserved.
*
* Contributor(s):
* Keith Visco, kvisco@ziplink.net
* -- original author.
*
*/
/*
* A Hashtable for TxObjects
*/
#include "Map.h"
//-------------/
//- Constants -/
//-------------/
const int Map::DEFAULT_SIZE = 13;
//----------------/
//- Constructors -/
//----------------/
/**
* Creates a new Map with the default Size
**/
Map::Map() {
initialize(DEFAULT_SIZE);
} //-- Map
/**
* Creates a new Map with the specified number of buckets
**/
Map::Map(int size) {
initialize(size);
} //-- Map
/**
* Helper method for Constructors
**/
void Map::initialize(PRInt32 size) {
//-- by default the Map will not delete it's
//-- object references
mOwnership = eOwnsNone;
//-- create a new array of bucket pointers
elements = new BucketItem*[size];
//-- initialize all elements to 0;
for ( PRInt32 i = 0; i < size; i++ ) elements[i] = 0;
numberOfBuckets = size;
numberOfElements = 0;
} //-- initialize
/**
* Destructor for Map
**/
Map::~Map() {
clear();
delete [] elements;
} //-- ~Map
/**
* Removes all elements from the Map. Deletes objects according
* to the mOwnership attribute
**/
void Map::clear() {
for (int i = 0; i < numberOfBuckets; i++) {
BucketItem* bktItem = elements[i];
while (bktItem) {
BucketItem* tItem = bktItem;
bktItem = bktItem->next;
if (mOwnership & eOwnsItems)
delete tItem->item;
if (mOwnership & eOwnsKeys)
delete tItem->key;
//--delete tItem;
delete tItem;
}
}
numberOfElements = 0;
} //-- clear
/**
* Returns the object reference in this Map associated with the given key
* @return the object reference in this Map associated with the given key
**/
TxObject* Map::get(TxObject* key) {
BucketItem* item = getBucketItem(key);
if ( item ) return item->item;
return 0;
} //-- get
/**
* Returns true if there are no objects in this map.
* @return true if there are no objects in this map.
**/
MBool Map::isEmpty() {
return (numberOfElements == 0) ? MB_TRUE : MB_FALSE;
} //-- isEmpty
/**
* Returns a List of all the keys in this Map.
* Please delete this List when you are done with it
**/
List* Map::keys() {
List* list = new List();
for (int i = 0; i < numberOfBuckets; i++) {
BucketItem* item = elements[i];
while (item) {
list->add(item->key);
item = item->next;
}
}
return list;
} //-- keys
/**
* Adds the TxObject reference to the map and associates it with the given
* key
**/
void Map::put(TxObject* key, TxObject* obj) {
if ((!key) || (!obj)) return;
//-- compute hash for key
PRUint32 hashCode = key->hashCode();
//-- calculate index
int idx = hashCode % numberOfBuckets;
//-- fetch first item in bucket
BucketItem* bktItem = elements[idx];
//-- if bktItem is 0 then there are no items is this Bucket,
//-- add to front of list
if ( !bktItem ) {
elements[idx] = createBucketItem(key, obj);
++numberOfElements;
}
//-- find current item, or add to end of list
else {
BucketItem* prevItem = bktItem;
//-- advance to next spot
while ( bktItem ) {
//-- if current key equals desired key, break
if ( bktItem->key->equals(key) ) {
break;
}
prevItem = bktItem;
bktItem = bktItem->next;
}
//-- if we did not find a bucket Item create a new one
if ( !bktItem) {
bktItem = createBucketItem(key, obj);
prevItem->next = bktItem;
bktItem->prev = prevItem;
++numberOfElements;
}
//-- we found bucket item, just set value
else bktItem->item = obj;
}
} //-- put
/**
* Removes the the specified TxObject from the Map
* @param key the TxObject which is used to calculate the hashCode of
* the TxObject to remove from the Map
* @return the TxObject removed from the Map
**/
TxObject* Map::remove(TxObject* key) {
if (!key) return 0;
// compute hash for key
PRUint32 hashCode = key->hashCode();
int idx = hashCode % numberOfBuckets;
BucketItem* bktItem = elements[idx];
while ( bktItem ) {
if ( bktItem->key->equals(key) ) break;
bktItem = bktItem->next;
}
if ( bktItem ) {
if (bktItem == elements[idx]) elements[idx] = bktItem->next;
else bktItem->prev->next = bktItem->next;
numberOfElements--;
TxObject* txObject = bktItem->item;
bktItem->item = 0;
delete bktItem;
return txObject;
}
return 0;
} //-- remove
/**
* Sets the ownership flag.
**/
void Map::setOwnership(txMapOwnership aOwnership) {
mOwnership = aOwnership;
} //-- setOwnership
/**
* Returns the number of key-object pairs in the Map
* @return the number of key-object pairs in the Map
**/
int Map::size() {
return numberOfElements;
} //-- size
//-------------------/
//- Private Methods -/
//-------------------/
Map::BucketItem* Map::createBucketItem(TxObject* key, TxObject* obj)
{
BucketItem* bktItem = new BucketItem;
bktItem->next = 0;
bktItem->prev = 0;
bktItem->key = key;
bktItem->item = obj;
return bktItem;
} //-- createBucketItem
Map::BucketItem* Map::getBucketItem(TxObject* key) {
// compute hash for key
PRUint32 hashCode = key->hashCode();
int idx = hashCode % numberOfBuckets;
BucketItem* bktItem = elements[idx];
while ( bktItem ) {
if ( bktItem->key->equals(key) ) return bktItem;
bktItem = bktItem->next;
}
return bktItem;
} //-- getBucketItem

Просмотреть файл

@ -31,7 +31,8 @@
#include "baseutils.h"
#include "TxObject.h"
#include "List.h"
class txList;
class Map : public TxObject {
@ -64,7 +65,7 @@ public:
*
* You will need to delete this List when you are done with it.
**/
List* keys();
txList* keys();
/**
* Returns the object reference in this Map associated with the given name

Просмотреть файл

@ -32,6 +32,7 @@
**/
#include "NamedMap.h"
#include "StringList.h"
//-------------/
//- Constants -/

Просмотреть файл

@ -32,7 +32,9 @@
#include "baseutils.h"
#include "TxObject.h"
#include "StringList.h"
#include "TxString.h"
class StringList;
class NamedMap : public TxObject {

Просмотреть файл

@ -24,6 +24,7 @@
*/
#include "ErrorObserver.h"
#include "TxString.h"
/**
* Creates a new SimpleErrorObserver.

Просмотреть файл

@ -1,143 +0,0 @@
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is TransforMiiX XSLT processor.
*
* The Initial Developer of the Original Code is The MITRE Corporation.
* Portions created by MITRE are Copyright (C) 1999 The MITRE Corporation.
*
* Portions created by Keith Visco as a Non MITRE employee,
* (C) 1999 Keith Visco. All Rights Reserved.
*
* Contributor(s):
* Keith Visco, kvisco@ziplink.net
* -- original author.
* Bob Miller, kbob@oblix.com
* -- plugged core leak.
*
*/
/**
* A class for keeping an ordered list of Strings
**/
#ifndef TRANSFRMX_STRINGLIST_H
#define TRANSFRMX_STRINGLIST_H
#include "TxString.h"
#include "baseutils.h"
class StringListIterator;
class StringList {
friend class StringListIterator;
public:
/**
* Creates an empty StringList
**/
StringList();
/**
* StringList destructor
**/
virtual ~StringList();
MBool contains(String& search);
/**
* Returns the number of Strings in this List
**/
PRInt32 getLength();
/**
* Returns a StringListIterator for this StringList
**/
StringListIterator* iterator();
/**
* Adds the given String to the list
**/
void add(String* strptr);
/**
* Removes the given String pointer from the list
**/
String* remove(String* strptr);
/**
* Removes all Strings equal to the given String from the list
* All removed strings will be destroyed
**/
void remove(String& search);
protected:
struct StringListItem {
StringListItem* nextItem;
StringListItem* prevItem;
String* strptr;
};
private:
StringListItem* firstItem;
StringListItem* lastItem;
PRInt32 itemCount;
void insertAfter(String* strptr, StringListItem* sItem);
void insertBefore(String* strptr, StringListItem* sItem);
/**
* Removes the given StringListItem pointer from the list
**/
StringListItem* remove(StringListItem* sItem);
};
class StringListIterator {
public:
StringListIterator(StringList* list);
virtual ~StringListIterator();
void add(String* strptr);
MBool hasNext();
MBool hasPrevious();
String* next();
String* previous();
String* remove();
void reset();
private:
StringList::StringListItem* currentItem;
StringList* stringList;
MBool allowRemove;
};
#endif

Просмотреть файл

@ -28,10 +28,10 @@
#ifndef txString_h__
#define txString_h__
#include "TxObject.h"
#include "baseutils.h"
#ifdef TX_EXE
#include "TxObject.h"
#include <iostream.h>
typedef unsigned short UNICODE_CHAR;
const PRInt32 kNotFound = -1;

Просмотреть файл

@ -40,7 +40,8 @@
#define MITRE_PRIMITIVES_H
#include "baseutils.h"
#include "TxString.h"
class String;
/*
* Utility class for doubles

Просмотреть файл

@ -39,9 +39,10 @@
#ifndef TRANSFRMX_EXPANDEDNAMEMAP_H
#define TRANSFRMX_EXPANDEDNAMEMAP_H
#include "XMLUtils.h"
#include "TxObject.h"
#include "txError.h"
#include "XMLUtils.h"
class TxObject;
class txExpandedNameMap {
public:

Просмотреть файл

@ -24,6 +24,8 @@
*/
#include "XMLDOMUtils.h"
#include "dom.h"
#include "TxString.h"
void XMLDOMUtils::getNodeValue(Node* aNode, String& aResult)
{

Просмотреть файл

@ -26,9 +26,11 @@
#ifndef TRANSFRMX_XMLDOMUTILS_H
#define TRANSFRMX_XMLDOMUTILS_H
#include "dom.h"
#include "baseutils.h"
class Node;
class String;
/*
* A utility class for use with XML DOM implementations
*/

Просмотреть файл

@ -31,8 +31,8 @@
#define MITRE_XMLUTILS_H
#include "baseutils.h"
#include "txAtom.h"
#include "dom.h"
#include "txAtom.h"
#include "txError.h"
class String;

Просмотреть файл

@ -48,6 +48,7 @@
#include "nsINameSpaceManager.h"
#include "pldhash.h"
#include "txAtom.h"
#include "TxObject.h"
#include "TxString.h"
#ifndef NULL

Просмотреть файл

@ -31,6 +31,8 @@
**/
#include "Expr.h"
#include "ExprResult.h"
#include "primitives.h"
/**
* Creates a new AdditiveExpr using the given operator

Просмотреть файл

@ -28,6 +28,7 @@
**/
#include "Expr.h"
#include "ExprResult.h"
/**
* Create a new AttributeValueTemplate

Просмотреть файл

@ -35,6 +35,7 @@
**/
#include "Expr.h"
#include "ExprResult.h"
/**
* Creates a new BooleanExpr using the given operator

Просмотреть файл

@ -27,6 +27,7 @@
*
*/
#include "ExprResult.h"
#include "FunctionLib.h"
#include "txAtoms.h"
#include "txIXPathContext.h"

Просмотреть файл

@ -35,24 +35,20 @@
#ifndef TRANSFRMX_EXPR_H
#define TRANSFRMX_EXPR_H
#include "txError.h"
#include "TxString.h"
#include "ErrorObserver.h"
#include "NodeSet.h"
#include "Stack.h"
#include "ExprResult.h"
#include "baseutils.h"
#include "dom.h"
#include "List.h"
#include "txAtom.h"
#include "TxObject.h"
#include "primitives.h"
#include "TxString.h"
/*
XPath class definitions.
Much of this code was ported from XSL:P.
*/
/*
* necessary prototypes
*/
class ExprResult;
class NodeSet;
class txIParseContext;
class txIMatchContext;
class txIEvalContext;
@ -138,7 +134,7 @@ public:
protected:
List params;
txList params;
FunctionCall();

Просмотреть файл

@ -39,8 +39,10 @@
**/
#include "ExprParser.h"
#include "ExprLexer.h"
#include "FunctionLib.h"
#include "Names.h"
#include "Stack.h"
#include "txAtoms.h"
#include "txIXPathContext.h"

Просмотреть файл

@ -32,11 +32,20 @@
#ifndef MITREXSL_EXPRPARSER_H
#define MITREXSL_EXPRPARSER_H
#include "TxString.h"
#include "ExprLexer.h"
#include "Expr.h"
#include "List.h"
#include "baseutils.h"
#include "txAtom.h"
#include "txError.h"
class AttributeValueTemplate;
class Expr;
class ExprLexer;
class FunctionCall;
class LocationStep;
class PredicateList;
class String;
class Token;
class txIParseContext;
class txNodeTypeTest;
class ExprParser
{

Просмотреть файл

@ -28,8 +28,9 @@
#ifndef TRANSFRMX_EXPRRESULT_H
#define TRANSFRMX_EXPRRESULT_H
#include "TxObject.h"
#include "primitives.h"
#include "TxObject.h"
#include "TxString.h"
/*
* ExprResult

Просмотреть файл

@ -26,6 +26,7 @@
*/
#include "Expr.h"
#include "NodeSet.h"
#include "txIXPathContext.h"
//-- Implementation of FilterExpr --/

Просмотреть файл

@ -24,6 +24,7 @@
*/
#include "Expr.h"
#include "ExprResult.h"
#include "txAtom.h"
#include "txIXPathContext.h"

Просмотреть файл

@ -33,11 +33,9 @@
#ifndef TRANSFRMX_FUNCTIONLIB_H
#define TRANSFRMX_FUNCTIONLIB_H
#include "TxString.h"
#include "primitives.h"
#include "ExprResult.h"
#include "Expr.h"
#include "TxString.h"
/**
* The following are definitions for the XPath functions

Просмотреть файл

@ -28,6 +28,7 @@
*/
#include "Expr.h"
#include "NodeSet.h"
#include "txIXPathContext.h"
/**

Просмотреть файл

@ -36,7 +36,9 @@
**/
#include "Expr.h"
#include "ExprResult.h"
#include <math.h>
#include "primitives.h"
/**
* Creates a new MultiplicativeExpr using the given operator

Просмотреть файл

@ -31,9 +31,9 @@
*/
#include "NodeSet.h"
#include "dom.h"
#include "XMLDOMUtils.h"
#include "string.h"
#include "stdio.h"
#include <string.h>
static const int kTxNodeSetMinSize = 4;
static const int kTxNodeSetGrowFactor = 2;

Просмотреть файл

@ -34,10 +34,11 @@
#ifndef TRANSFRMX_NODESET_H
#define TRANSFRMX_NODESET_H
#include "dom.h"
#include "ExprResult.h"
#include "txError.h"
class Node;
class NodeSet : public ExprResult
{

Просмотреть файл

@ -33,9 +33,10 @@
*/
#include "FunctionLib.h"
#include "NodeSet.h"
#include "Tokenizer.h"
#include "txAtoms.h"
#include "txIXPathContext.h"
#include "Tokenizer.h"
#include "XMLDOMUtils.h"
/*

Просмотреть файл

@ -25,6 +25,8 @@
*/
#include "Expr.h"
#include "ExprResult.h"
#include "primitives.h"
//--------------/
//- NumberExpr -/

Просмотреть файл

@ -35,6 +35,7 @@
#include "FunctionLib.h"
#include <math.h>
#include "NodeSet.h"
#include "txAtoms.h"
#include "txIXPathContext.h"
#include "XMLDOMUtils.h"

Просмотреть файл

@ -32,9 +32,10 @@
*/
#include "Expr.h"
#include "XMLUtils.h"
#include "Nodeset.h"
#include "txNodeSetContext.h"
#include "txSingleNodeContext.h"
#include "XMLUtils.h"
//------------/
//- PathExpr -/

Просмотреть файл

@ -24,6 +24,7 @@
*/
#include "Expr.h"
#include "NodeSet.h"
#include "txNodeSetContext.h"
/*

Просмотреть файл

@ -28,6 +28,8 @@
*/
#include "Expr.h"
#include "NodeSet.h"
#include "TxString.h"
#include "XMLDOMUtils.h"
//------------------/

Просмотреть файл

@ -24,6 +24,7 @@
*/
#include "Expr.h"
#include "NodeSet.h"
#include "txIXPathContext.h"
/**

Просмотреть файл

@ -24,6 +24,7 @@
*/
#include "Expr.h"
#include "ExprResult.h"
/**
* StringExpr

Просмотреть файл

@ -29,11 +29,12 @@
* A representation of the XPath String funtions
**/
#include "ExprResult.h"
#include "FunctionLib.h"
#include "XMLDOMUtils.h"
#include "XMLUtils.h"
#include "txAtoms.h"
#include "txIXPathContext.h"
#include "XMLDOMUtils.h"
#include "XMLUtils.h"
#include <math.h>
/**

Просмотреть файл

@ -24,6 +24,7 @@
*/
#include "Expr.h"
#include "ExprResult.h"
UnaryExpr::UnaryExpr(Expr* expr)
{

Просмотреть файл

@ -24,6 +24,7 @@
*/
#include "Expr.h"
#include "NodeSet.h"
//-------------/
//- UnionExpr -/

Просмотреть файл

@ -24,6 +24,7 @@
*/
#include "Expr.h"
#include "NodeSet.h"
#include "txAtoms.h"
#include "txIXPathContext.h"

Просмотреть файл

@ -45,6 +45,7 @@
#include "nsXPathNSResolver.h"
#include "nsXPathResult.h"
#include "nsContentCID.h"
#include "Expr.h"
#include "ExprParser.h"
#include "nsDOMError.h"
#include "txURIUtils.h"

Просмотреть файл

@ -39,6 +39,7 @@
#include "nsXPathExpression.h"
#include "Expr.h"
#include "ExprResult.h"
#include "nsDOMError.h"
#include "nsIDOMCharacterData.h"
#include "nsIDOMClassInfo.h"

Просмотреть файл

@ -38,6 +38,7 @@
* ***** END LICENSE BLOCK ***** */
#include "nsXPathResult.h"
#include "dom.h"
#include "ExprResult.h"
#include "NodeSet.h"
#include "nsDOMError.h"

Просмотреть файл

@ -37,6 +37,7 @@
* ***** END LICENSE BLOCK ***** */
#include "txForwardContext.h"
#include "Nodeset.h"
Node* txForwardContext::getContextNode()
{

Просмотреть файл

@ -41,6 +41,8 @@
#include "txIXPathContext.h"
class NodeSet;
class txForwardContext : public txIEvalContext
{
public:

Просмотреть файл

@ -39,9 +39,15 @@
#ifndef __TX_I_XPATH_CONTEXT
#define __TX_I_XPATH_CONTEXT
#include "Expr.h"
#include "baseutils.h"
#include "txAtom.h"
#include "txError.h"
class ExprResult;
class FunctionCall;
class Node;
class String;
/*
* txIParseContext
*

Просмотреть файл

@ -37,6 +37,7 @@
* ***** END LICENSE BLOCK ***** */
#include "txNodeSetContext.h"
#include "NodeSet.h"
Node* txNodeSetContext::getContextNode()
{

Просмотреть файл

@ -41,6 +41,8 @@
#include "txIXPathContext.h"
class NodeSet;
class txNodeSetContext : public txIEvalContext
{
public:

Просмотреть файл

@ -32,9 +32,8 @@
#define TRANSFRMX_XSLT_FUNCTIONS_H
#include "Expr.h"
#include "TxString.h"
#include "Map.h"
#include "ExprResult.h"
#include "NodeSet.h"
class NamedMap;
class ProcessorState;

Просмотреть файл

@ -36,10 +36,11 @@
*
* ***** END LICENSE BLOCK ***** */
#include "txXSLTPatterns.h"
#include "txPatternParser.h"
#include "ExprLexer.h"
#include "Names.h"
#include "txAtoms.h"
#include "txXSLTPatterns.h"
txPattern* txPatternParser::createPattern(const String& aPattern,
txIParseContext* aContext,

Просмотреть файл

@ -37,6 +37,7 @@
* ***** END LICENSE BLOCK ***** */
#include "txRtfHandler.h"
#include "dom.h"
txRtfHandler::txRtfHandler(Document* aDocument,
txResultTreeFragment* aResultTreeFragment) :

Просмотреть файл

@ -42,6 +42,9 @@
#include "txXMLEventHandler.h"
#include "NodeSet.h"
class Document;
class Node;
class txRtfHandler : public txXMLEventHandler
{
public:

Просмотреть файл

@ -39,7 +39,8 @@
#include "txXPathResultComparator.h"
#include "Expr.h"
#include "txNodeSorter.h"
#include "ExprResult.h"
#include "primitives.h"
#ifndef TX_EXE
#include "nsCollationCID.h"
#include "nsILocale.h"