summaryrefslogtreecommitdiff
path: root/lib/Bytecode
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bytecode')
-rw-r--r--lib/Bytecode/Reader/Reader.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index f0f6597d85..82b1888e6a 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -276,16 +276,17 @@ Value * BytecodeReader::getValue(unsigned type, unsigned oNum, bool Create) {
}
}
- if (GlobalTyID < ModuleValues.size() && ModuleValues[GlobalTyID]) {
- if (Num < ModuleValues[GlobalTyID]->size())
- return ModuleValues[GlobalTyID]->getOperand(Num);
- Num -= ModuleValues[GlobalTyID]->size();
- }
+ if (GlobalTyID < ModuleValues.size())
+ if (ValueList *Globals = ModuleValues[GlobalTyID]) {
+ if (Num < Globals->size())
+ return Globals->getOperand(Num);
+ Num -= Globals->size();
+ }
- if (FunctionValues.size() > type &&
- FunctionValues[type] &&
- Num < FunctionValues[type]->size())
- return FunctionValues[type]->getOperand(Num);
+ if (type < FunctionValues.size())
+ if (ValueList *Locals = FunctionValues[type])
+ if (Num < Locals->size())
+ return Locals->getOperand(Num);
if (!Create) return 0; // Do not create a placeholder?