Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 40 additions & 37 deletions build/jsroot.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const version_id = 'dev',

/** @summary version date
* @desc Release date in format day/month/year like '14/04/2022' */
version_date = '28/11/2025',
version_date = '28/01/2026',

/** @summary version id and date
* @desc Produced by concatenation of {@link version_id} and {@link version_date}
Expand Down Expand Up @@ -105080,11 +105080,14 @@ let TGraphPainter$1 = class TGraphPainter extends ObjectPainter {
return true;

let is_normal = false;
if (check_axis !== 'y')
is_normal ||= (histo.fXaxis.fXmin !== 0.0011) || (histo.fXaxis.fXmax !== 1.1);
if (check_axis !== 'y') {
is_normal ||= ((histo.fXaxis.fXmin !== 0.0011) && (histo.fXaxis.fXmin !== 0)) ||
((histo.fXaxis.fXmax !== 1.1) && (histo.fXaxis.fXmax !== 1));
}

if (check_axis !== 'x') {
is_normal ||= (histo.fYaxis.fXmin !== 0.0011) || (histo.fYaxis.fXmax !== 1.1) ||
is_normal ||= ((histo.fYaxis.fXmin !== 0.0011) && (histo.fYaxis.fXmin !== 0)) ||
((histo.fYaxis.fXmax !== 1.1) && (histo.fYaxis.fXmax !== 1)) ||
(histo.fMinimum !== 0.0011) || (histo.fMaximum !== 1.1);
}

Expand Down Expand Up @@ -122161,7 +122164,7 @@ function readMapElement(buf) {
/** @summary create member entry for streamer element
* @desc used for reading of data
* @private */
function createMemberStreamer(element, file) {
function createMemberStreamer(element, file, no_string) {
const member = {
name: element.fName, type: element.fType,
fArrayLength: element.fArrayLength,
Expand Down Expand Up @@ -122227,6 +122230,7 @@ function createMemberStreamer(element, file) {
case kOffsetL + kInt:
case kOffsetL + kCounter:
case kOffsetL + kDouble:
case kOffsetL + kChar:
case kOffsetL + kUChar:
case kOffsetL + kShort:
case kOffsetL + kUShort:
Expand All @@ -122239,36 +122243,35 @@ function createMemberStreamer(element, file) {
case kOffsetL + kFloat:
if (element.fArrayDim < 2) {
member.arrlength = element.fArrayLength;
member.func = function(buf, obj) {
obj[this.name] = buf.readFastArray(this.arrlength, this.type - kOffsetL);
};
if ((member.type !== kOffsetL + kChar) || no_string) {
member.func = function(buf, obj) {
obj[this.name] = buf.readFastArray(this.arrlength, this.type - kOffsetL);
};
} else {
member.func = function(buf, obj) {
obj[this.name] = buf.readFastString(this.arrlength);
};
}
} else {
member.arrlength = element.fMaxIndex[element.fArrayDim - 1];
member.minus1 = true;
member.func = function(buf, obj) {
obj[this.name] = buf.readNdimArray(this, (buf2, handle) =>
buf2.readFastArray(handle.arrlength, handle.type - kOffsetL));
};
}
break;
case kOffsetL + kChar:
if (element.fArrayDim < 2) {
member.arrlength = element.fArrayLength;
member.func = function(buf, obj) {
obj[this.name] = buf.readFastString(this.arrlength);
};
} else {
member.minus1 = true; // one dimension used for char*
member.arrlength = element.fMaxIndex[element.fArrayDim - 1];
member.func = function(buf, obj) {
obj[this.name] = buf.readNdimArray(this, (buf2, handle) =>
buf2.readFastString(handle.arrlength));
};
if ((member.type !== kOffsetL + kChar) || no_string) {
member.func = function(buf, obj) {
obj[this.name] = buf.readNdimArray(this, (buf2, handle) =>
buf2.readFastArray(handle.arrlength, handle.type - kOffsetL));
};
} else {
member.func = function(buf, obj) {
obj[this.name] = buf.readNdimArray(this, (buf2, handle) =>
buf2.readFastString(handle.arrlength));
};
}
}
break;
case kOffsetP + kBool:
case kOffsetP + kInt:
case kOffsetP + kDouble:
case kOffsetP + kChar:
case kOffsetP + kUChar:
case kOffsetP + kShort:
case kOffsetP + kUShort:
Expand All @@ -122280,15 +122283,15 @@ function createMemberStreamer(element, file) {
case kOffsetP + kLong64:
case kOffsetP + kFloat:
member.cntname = element.fCountName;
member.func = function(buf, obj) {
obj[this.name] = (buf.ntou1() === 1) ? buf.readFastArray(obj[this.cntname], this.type - kOffsetP) : [];
};
break;
case kOffsetP + kChar:
member.cntname = element.fCountName;
member.func = function(buf, obj) {
obj[this.name] = (buf.ntou1() === 1) ? buf.readFastString(obj[this.cntname]) : null;
};
if ((member.type !== kOffsetP + kChar) || no_string) {
member.func = function(buf, obj) {
obj[this.name] = (buf.ntou1() === 1) ? buf.readFastArray(obj[this.cntname], this.type - kOffsetP) : [];
};
} else {
member.func = function(buf, obj) {
obj[this.name] = (buf.ntou1() === 1) ? buf.readFastString(obj[this.cntname]) : null;
};
}
break;
case kDouble32:
case kOffsetL + kDouble32:
Expand Down Expand Up @@ -127822,7 +127825,7 @@ async function treeProcess(tree, selector, args) {
elem.fArrayDim = 1;
elem.fMaxIndex[0] = 10; // 10 if artificial number, will be replaced during reading

item.arrmember = createMemberStreamer(elem, handle.file);
item.arrmember = createMemberStreamer(elem, handle.file, true);
}
}
} else
Expand Down
1 change: 1 addition & 0 deletions changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
1. Let define alternative draw function #378
1. Remove support for deprectaed `TH1K` class
1. Fix - paint frame border mode/size from TCanvas
1. Fix - correctly process `TLeafB` arrays in tree draw #384


## Changes in 7.10.1
Expand Down
2 changes: 1 addition & 1 deletion modules/core.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const version_id = 'dev',

/** @summary version date
* @desc Release date in format day/month/year like '14/04/2022' */
version_date = '28/11/2025',
version_date = '28/01/2026',

/** @summary version id and date
* @desc Produced by concatenation of {@link version_id} and {@link version_date}
Expand Down
64 changes: 32 additions & 32 deletions modules/io.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -979,7 +979,7 @@ function readMapElement(buf) {
/** @summary create member entry for streamer element
* @desc used for reading of data
* @private */
function createMemberStreamer(element, file) {
function createMemberStreamer(element, file, no_string) {
const member = {
name: element.fName, type: element.fType,
fArrayLength: element.fArrayLength,
Expand Down Expand Up @@ -1045,6 +1045,7 @@ function createMemberStreamer(element, file) {
case kOffsetL + kInt:
case kOffsetL + kCounter:
case kOffsetL + kDouble:
case kOffsetL + kChar:
case kOffsetL + kUChar:
case kOffsetL + kShort:
case kOffsetL + kUShort:
Expand All @@ -1057,36 +1058,35 @@ function createMemberStreamer(element, file) {
case kOffsetL + kFloat:
if (element.fArrayDim < 2) {
member.arrlength = element.fArrayLength;
member.func = function(buf, obj) {
obj[this.name] = buf.readFastArray(this.arrlength, this.type - kOffsetL);
};
if ((member.type !== kOffsetL + kChar) || no_string) {
member.func = function(buf, obj) {
obj[this.name] = buf.readFastArray(this.arrlength, this.type - kOffsetL);
};
} else {
member.func = function(buf, obj) {
obj[this.name] = buf.readFastString(this.arrlength);
};
}
} else {
member.arrlength = element.fMaxIndex[element.fArrayDim - 1];
member.minus1 = true;
member.func = function(buf, obj) {
obj[this.name] = buf.readNdimArray(this, (buf2, handle) =>
buf2.readFastArray(handle.arrlength, handle.type - kOffsetL));
};
}
break;
case kOffsetL + kChar:
if (element.fArrayDim < 2) {
member.arrlength = element.fArrayLength;
member.func = function(buf, obj) {
obj[this.name] = buf.readFastString(this.arrlength);
};
} else {
member.minus1 = true; // one dimension used for char*
member.arrlength = element.fMaxIndex[element.fArrayDim - 1];
member.func = function(buf, obj) {
obj[this.name] = buf.readNdimArray(this, (buf2, handle) =>
buf2.readFastString(handle.arrlength));
};
if ((member.type !== kOffsetL + kChar) || no_string) {
member.func = function(buf, obj) {
obj[this.name] = buf.readNdimArray(this, (buf2, handle) =>
buf2.readFastArray(handle.arrlength, handle.type - kOffsetL));
};
} else {
member.func = function(buf, obj) {
obj[this.name] = buf.readNdimArray(this, (buf2, handle) =>
buf2.readFastString(handle.arrlength));
};
}
}
break;
case kOffsetP + kBool:
case kOffsetP + kInt:
case kOffsetP + kDouble:
case kOffsetP + kChar:
case kOffsetP + kUChar:
case kOffsetP + kShort:
case kOffsetP + kUShort:
Expand All @@ -1098,15 +1098,15 @@ function createMemberStreamer(element, file) {
case kOffsetP + kLong64:
case kOffsetP + kFloat:
member.cntname = element.fCountName;
member.func = function(buf, obj) {
obj[this.name] = (buf.ntou1() === 1) ? buf.readFastArray(obj[this.cntname], this.type - kOffsetP) : [];
};
break;
case kOffsetP + kChar:
member.cntname = element.fCountName;
member.func = function(buf, obj) {
obj[this.name] = (buf.ntou1() === 1) ? buf.readFastString(obj[this.cntname]) : null;
};
if ((member.type !== kOffsetP + kChar) || no_string) {
member.func = function(buf, obj) {
obj[this.name] = (buf.ntou1() === 1) ? buf.readFastArray(obj[this.cntname], this.type - kOffsetP) : [];
};
} else {
member.func = function(buf, obj) {
obj[this.name] = (buf.ntou1() === 1) ? buf.readFastString(obj[this.cntname]) : null;
};
}
break;
case kDouble32:
case kOffsetL + kDouble32:
Expand Down
2 changes: 1 addition & 1 deletion modules/tree.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2488,7 +2488,7 @@ async function treeProcess(tree, selector, args) {
elem.fArrayDim = 1;
elem.fMaxIndex[0] = 10; // 10 if artificial number, will be replaced during reading

item.arrmember = createMemberStreamer(elem, handle.file);
item.arrmember = createMemberStreamer(elem, handle.file, true);
}
}
} else
Expand Down