summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sfiligoi <isfiligoi@ucsd.edu>2010-01-26 20:42:04 +0000
committerIgor Sfiligoi <isfiligoi@ucsd.edu>2010-01-26 20:42:04 +0000
commite89829dee227d2e2036f8ecf1e2d72ed200b6609 (patch)
treee473c13044fdc6a22b39508c0f5842e4b16bbb53
parentb1197b7e0526b8510f49731e5e19ed64425ac9ef (diff)
Fix typo, and finish getElFast
-rw-r--r--src/lib/rrdMultiFile.js25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/lib/rrdMultiFile.js b/src/lib/rrdMultiFile.js
index 1ac4b16..82ea76e 100644
--- a/src/lib/rrdMultiFile.js
+++ b/src/lib/rrdMultiFile.js
@@ -62,6 +62,7 @@ RRDRRASum.prototype.getEl = function(row_idx,ds_idx) {
outSum=undefined;
break;
}
+ }
outSum+=val;
}
return outSum;
@@ -70,9 +71,27 @@ RRDRRASum.prototype.getEl = function(row_idx,ds_idx) {
// Low precision version of getEl
// Uses getFastDoubleAt
RRDRRASum.prototype.getElFast = function(row_idx,ds_idx) {
- outSum=0.0;
- for (rra in this.rra_list) {
- outSum+=rra.getElFast(row_idx,ds_idx);
+ var outSum=0.0;
+ for (var i in this.rra_list) {
+ var offset=this.offset_list[i];
+ if ((row_id+offset)<this.row_cnt) {
+ var rra=this.rra_list[i];
+ val=rra.getElFast(row_idx+offset,ds_idx);
+ } else {
+ /* out of row range -> undefined*/
+ val=undefined;
+ }
+ /* treat all undefines as 0 for now */
+ if (val==undefined) {
+ if (this.treat_undefined_as_zero) {
+ val=0;
+ } else {
+ /* if even one element is undefined, the whole sum is undefined */
+ outSum=undefined;
+ break;
+ }
+ }
+ outSum+=val;
}
return outSum;
}