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
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2021-10-04 20:33:47 +0300
committerDavid Crocker <dcrocker@eschertech.com>2021-10-04 20:33:47 +0300
commit1cbc804408f7efb198c388dd8d5af1d08c8fbf20 (patch)
tree4a23934543f8710cb03fd7f30fe558cda7397981 /src/ObjectModel
parentdb7f42f07d3f616a5c5fdd15ae5fd86052ebbddd (diff)
Bug fix: deeply nested expressions threw error in SBC mode
Diffstat (limited to 'src/ObjectModel')
-rw-r--r--src/ObjectModel/ObjectModel.cpp4
-rw-r--r--src/ObjectModel/ObjectModel.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/ObjectModel/ObjectModel.cpp b/src/ObjectModel/ObjectModel.cpp
index 1a7e9cb5..ed61cc23 100644
--- a/src/ObjectModel/ObjectModel.cpp
+++ b/src/ObjectModel/ObjectModel.cpp
@@ -899,7 +899,7 @@ int ObjectModelTableEntry::IdCompare(const char *id) const noexcept
}
// Get the value of an object
-ExpressionValue ObjectModel::GetObjectValue(ObjectExplorationContext& context, const ObjectModelClassDescriptor * null classDescriptor, const char *idString, uint8_t tableNumber) const THROWS(GCodeException)
+ExpressionValue ObjectModel::GetObjectValueUsingTableNumber(ObjectExplorationContext& context, const ObjectModelClassDescriptor * null classDescriptor, const char *idString, uint8_t tableNumber) const THROWS(GCodeException)
decrease(strlen(idString)) // recursion variant
{
if (classDescriptor == nullptr)
@@ -986,7 +986,7 @@ decrease(strlen(idString)) // recursion variant
return val;
case '.':
context.CheckStack(StackUsage::GetObjectValue_withTable);
- return val.omVal->GetObjectValue(context, (val.omVal == this) ? classDescriptor : nullptr, idString + 1, val.param);
+ return val.omVal->GetObjectValueUsingTableNumber(context, (val.omVal == this) ? classDescriptor : nullptr, idString + 1, val.param);
case '^':
throw context.ConstructParseException("object is not an array");
default:
diff --git a/src/ObjectModel/ObjectModel.h b/src/ObjectModel/ObjectModel.h
index 67a583fa..80a8cda6 100644
--- a/src/ObjectModel/ObjectModel.h
+++ b/src/ObjectModel/ObjectModel.h
@@ -302,7 +302,7 @@ public:
void ReportAsJson(OutputBuffer *buf, const char *filter, const char *reportFlags, bool wantArrayLength) const THROWS(GCodeException);
// Get the value of an object via the table
- ExpressionValue GetObjectValue(ObjectExplorationContext& context, const ObjectModelClassDescriptor * null classDescriptor, const char *idString, uint8_t tableNumber) const THROWS(GCodeException);
+ ExpressionValue GetObjectValueUsingTableNumber(ObjectExplorationContext& context, const ObjectModelClassDescriptor * null classDescriptor, const char *idString, uint8_t tableNumber) const THROWS(GCodeException);
// Function to report a value or object as JSON. This does not need to handle 'var' or 'global' because those are checked for before this is called.
void ReportItemAsJson(OutputBuffer *buf, ObjectExplorationContext& context, const ObjectModelClassDescriptor *classDescriptor,