ArgumentsNode::reverseList()

porten at froglogic.com porten at froglogic.com
Sun Oct 26 23:21:43 CET 2003


Hi,

we talked about getting rid of the reverseList() function in kjs' nodes.
David was so kind to fwd me the mail containing my initial proposal. I've
repeated the approach on the ArgumentsNode and ArgumentListNode class for
demonstration purposes. See attached patch. I'll convert the rest and post
the patch if this is of interest.

Harri.
-------------- next part --------------
Index: nodes.h
===================================================================
RCS file: /home/kde/kdelibs/kjs/nodes.h,v
retrieving revision 1.78
diff -r1.78 nodes.h
345,346c345,347
<     ArgumentListNode(Node *e);
<     ArgumentListNode(ArgumentListNode *l, Node *e);
---
>     ArgumentListNode(Node *e) : list(this), expr(e) {}
>     ArgumentListNode(ArgumentListNode *l, Node *e)
>       : list(l->list), expr(e) { l->list = this; }
360c361,362
<     ArgumentsNode(ArgumentListNode *l) : list(l) { reverseList(); }
---
>     ArgumentsNode() : list(0) {}
>     ArgumentsNode(ArgumentListNode *l) : list(l->list) { l->list = 0; }
Index: nodes.cpp
===================================================================
RCS file: /home/kde/kdelibs/kjs/nodes.cpp,v
retrieving revision 1.159
diff -r1.159 nodes.cpp
658,666d657
< ArgumentListNode::ArgumentListNode(Node *e) : list(0L), expr(e)
< {
< }
< 
< ArgumentListNode::ArgumentListNode(ArgumentListNode *l, Node *e)
<   : list(l), expr(e)
< {
< }
< 
710,721d700
< 
< void ArgumentsNode::reverseList()
< {
<   ArgumentListNode *head = 0;
<   ArgumentListNode *next;
<   for (ArgumentListNode *n = list; n; n = next) {
<     next = n->list;
<     n->list = head;
<     head = n;
<   }
<   list = head;
< }
Index: grammar.y
===================================================================
RCS file: /home/kde/kdelibs/kjs/grammar.y,v
retrieving revision 1.52
diff -r1.52 grammar.y
243c243
<     '(' ')'                        { $$ = new ArgumentsNode(0L); }
---
>     '(' ')'                        { $$ = new ArgumentsNode(); }


More information about the Khtml-devel mailing list