Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2022-02-25 21:25:07 +0300
committerDavid Crocker <dcrocker@eschertech.com>2022-02-25 21:25:07 +0300
commitfbb12ebbf523b4599a997f1cef359e2a069d9e13 (patch)
tree409da16d1828be3991362b8241a2580aa152afa5 /src
parentbc6baf74d1f8e2668bdc1e394a640826e98eccc5 (diff)
Bug fix for OM query of tools[N].fans[M]
Diffstat (limited to 'src')
-rw-r--r--src/ObjectModel/ObjectModel.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/ObjectModel/ObjectModel.cpp b/src/ObjectModel/ObjectModel.cpp
index 6376f1e3..bef41e8f 100644
--- a/src/ObjectModel/ObjectModel.cpp
+++ b/src/ObjectModel/ObjectModel.cpp
@@ -656,13 +656,14 @@ void ObjectModel::ReportItemAsJsonFull(OutputBuffer *buf, ObjectExplorationConte
{
const char *endptr;
const int32_t index = StrToI32(filter, &endptr);
- if (endptr == filter || *endptr != ']' || index < 0 || (size_t)index >= val.omadVal->GetNumElements(this, context))
+ const auto bm = Bitmap<uint32_t>::MakeFromRaw(val.uVal);
+ int bitNumber;
+ if (endptr == filter || *endptr != ']' || index < 0 || (bitNumber = bm.GetSetBitNumber(index)) < 0)
{
buf->cat("null"); // avoid returning badly-formed JSON
break; // invalid syntax, or index out of range
}
- const auto bm = Bitmap<uint32_t>::MakeFromRaw(val.uVal);
- buf->catf("%u", bm.GetSetBitNumber(index));
+ buf->catf("%d", bitNumber);
break;
}
}
@@ -688,13 +689,14 @@ void ObjectModel::ReportItemAsJsonFull(OutputBuffer *buf, ObjectExplorationConte
{
const char *endptr;
const int32_t index = StrToI32(filter, &endptr);
- if (endptr == filter || *endptr != ']' || index < 0 || (size_t)index >= val.omadVal->GetNumElements(this, context))
+ const auto bm = Bitmap<uint64_t>::MakeFromRaw(val.uVal);
+ int bitNumber;
+ if (endptr == filter || *endptr != ']' || index < 0 || (bitNumber = bm.GetSetBitNumber(index)) < 0)
{
buf->cat("null"); // avoid returning badly-formed JSON
break; // invalid syntax, or index out of range
}
- const auto bm = Bitmap<uint64_t>::MakeFromRaw(val.uVal);
- buf->catf("%u", bm.GetSetBitNumber(index));
+ buf->catf("%d", bitNumber);
break;
}
}