diff options
author | David Crocker <dcrocker@eschertech.com> | 2021-10-04 20:33:47 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2021-10-04 20:33:47 +0300 |
commit | 1cbc804408f7efb198c388dd8d5af1d08c8fbf20 (patch) | |
tree | 4a23934543f8710cb03fd7f30fe558cda7397981 /src/ObjectModel | |
parent | db7f42f07d3f616a5c5fdd15ae5fd86052ebbddd (diff) |
Bug fix: deeply nested expressions threw error in SBC mode
Diffstat (limited to 'src/ObjectModel')
-rw-r--r-- | src/ObjectModel/ObjectModel.cpp | 4 | ||||
-rw-r--r-- | src/ObjectModel/ObjectModel.h | 2 |
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, |