Add a centralized runtime extension information store

Fix: 124107169
Fix: 123523457
Fix: 124285861
Fix: 124104123
Fix: 123178734
Test: NeuralNetworksTest_static
Test: NeuralNetworksTest_utils
Test: NeuralNetworksTest_FibonacciExtension (from change Ibe0fc5356baa909bce8424138bd5cfac9f74648f)
Change-Id: Id3f105476f42bd747a098f081a07b161036e4922
Merged-In: Id3f105476f42bd747a098f081a07b161036e4922
(cherry picked from commit 93c679813ab8f19a2d696a22f5fce229a1e62a73)
diff --git a/common/ValidateHal.cpp b/common/ValidateHal.cpp
index f106581..1015d92 100644
--- a/common/ValidateHal.cpp
+++ b/common/ValidateHal.cpp
@@ -337,7 +337,7 @@
             operand.lifetime == OperandLifeTime::CONSTANT_COPY) {
             if (!isExtensionOperandType(operand.type) && operand.type != OperandType::OEM &&
                 operand.type != OperandType::TENSOR_OEM_BYTE) {
-                uint32_t expectedLength = sizeOfData(operand.type, operand.dimensions);
+                uint32_t expectedLength = nonExtensionOperandSizeOfData(operand);
                 if (location.length != expectedLength) {
                     LOG(ERROR) << "Operand " << index << ": For operand " << toString(operand)
                                << " expected a size of " << expectedLength << " but got "