Update of /cvsroot/monetdb/pathfinder/runtime
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv18170
Modified Files:
xrpc_server.mx
Log Message:
- wrong variable was used as the index into the pre_sizeT array
- simplify code a bit
U xrpc_server.mx
Index: xrpc_server.mx
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/runtime/xrpc_server.mx,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -d -r1.61 -r1.62
--- xrpc_server.mx 7 Apr 2008 12:56:06 -0000 1.61
+++ xrpc_server.mx 7 Apr 2008 13:45:43 -0000 1.62
@@ -348,28 +348,6 @@
}
/**
- * Find the 'pre' value of the first node between 'start_pre' and
- * 'end_pre' (inclusive), which kind is 'elem_kind'.
- *
- * @return the 'pre' value of this node, or
- * 0 if such node can not be found.
- */
-static oid
-get_elem_pre(oid start_pre,
- oid end_pre,
- char elem_kind,
- char *pre_kind)
-{
- oid i;
-
- for (i = start_pre; i <= end_pre; i++) {
- if (pre_kind[i] == elem_kind)
- return i;
- }
- return 0;
-}
-
-/**
* Given the pre value of a type node, return the name of the type node
* as a string in the form 'ns_uri:loc'.
*
@@ -631,7 +609,7 @@
for(tpe_node_pre = seq_node_pre+1, k=1; tpe_node_pre <
next_seq_node_pre;
tpe_node_pre = next_tpe_node_pre, k++) {
/* skip possible empty text nodes, without further checking */
- tpe_node_pre += (pre_kindT[seq_node_pre] == ELEMENT ? 0 : 1);
+ tpe_node_pre += (pre_kindT[tpe_node_pre] == ELEMENT ? 0 : 1);
next_tpe_node_pre = tpe_node_pre + pre_sizeT[tpe_node_pre]+1;
/* advance our cursor in attr_own */
while(ao_ptr < nattrs && attr_ownT[ao_ptr] < tpe_node_pre)
ao_ptr++;
@@ -728,18 +706,12 @@
return GDK_FAIL;
}
- if(strcmp(argtpe[nr_args], "xs:element") == 0) {
- val_node_pre = get_elem_pre(tpe_node_pre+1,
- (tpe_node_pre+pre_sizeT[tpe_node_pre]),
ELEMENT, pre_kindT);
- } else if (strcmp(argtpe[nr_args], "xs:text") == 0) {
- val_node_pre = get_elem_pre(tpe_node_pre+1,
- (tpe_node_pre+pre_sizeT[tpe_node_pre]), TEXT,
pre_kindT);
- } else if (strcmp(argtpe[nr_args], "xs:comment") == 0) {
- val_node_pre = get_elem_pre(tpe_node_pre+1,
- (tpe_node_pre+pre_sizeT[tpe_node_pre]),
COMMENT, pre_kindT);
- } else if(strcmp(argtpe[nr_args],
"xs:processing-instruction") == 0) {
- val_node_pre = get_elem_pre(tpe_node_pre+1,
- (tpe_node_pre+pre_sizeT[tpe_node_pre]), PI,
pre_kindT);
+ if(strcmp(argtpe[nr_args], "xs:element") == 0 ||
+ strcmp(argtpe[nr_args], "xs:text") == 0 ||
+ strcmp(argtpe[nr_args], "xs:comment") == 0 ||
+ strcmp(argtpe[nr_args], "xs:processing-instruction") ==
0) {
+ val_node_pre = tpe_node_pre + 1;
+ val_node_pre += (pre_kindT[val_node_pre] == ELEMENT ?
0 : 1);
} else if (strcmp(argtpe[nr_args], "xs:document") == 0) {
val_node_pre = tpe_node_pre;
pre_kindT[val_node_pre] = 4;
@@ -754,16 +726,6 @@
return GDK_FAIL;
}
- if (val_node_pre == 0) {
- snprintf(errstr, 1024, "XRPC request: "
- "iter["LLFMT"]/param["LLFMT"]/value["LLFMT"] "
- "does not contain a *node* value",
- i+1, j+1, k);
- send_err(out, ERR404, "env:Sender", errstr);
- clean_up(argcnt,argtpe,argval,iterc,nr_args);
- return GDK_FAIL;
- }
-
snprintf(argval[nr_args], 32, OIDFMT, val_node_pre);
frag_root = BUNappend(frag_root, (ptr)&val_node_pre, TRUE);
isSimpleParam = 0;
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Register now and save $200. Hurry, offer ends at 11:59 p.m.,
Monday, April 7! Use priority code J8TLD2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins