Skip to content

Commit 26a4540

Browse files
committed
Remove range checks from list blocks
1 parent b374061 commit 26a4540

File tree

1 file changed

+6
-27
lines changed

1 file changed

+6
-27
lines changed

src/dev/blocks/listblocks.cpp

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -81,16 +81,10 @@ CompilerValue *ListBlocks::compileDeleteOfList(Compiler *compiler)
8181
}
8282
compiler->beginElseBranch();
8383
{
84-
CompilerValue *min = compiler->addConstValue(-1);
8584
CompilerValue *max = compiler->addListSize(list);
8685
index = getListIndex(compiler, index, list, max);
8786
index = compiler->createSub(index, compiler->addConstValue(1));
88-
cond = compiler->createAnd(compiler->createCmpGT(index, min), compiler->createCmpLT(index, max));
89-
compiler->beginIfStatement(cond);
90-
{
91-
compiler->createListRemove(list, index);
92-
}
93-
compiler->endIf();
87+
compiler->createListRemove(list, index);
9488
}
9589
compiler->endIf();
9690
}
@@ -116,17 +110,11 @@ CompilerValue *ListBlocks::compileInsertAtList(Compiler *compiler)
116110

117111
if (list) {
118112
CompilerValue *index = compiler->addInput("INDEX");
119-
CompilerValue *min = compiler->addConstValue(-1);
120113
CompilerValue *max = compiler->createAdd(compiler->addListSize(list), compiler->addConstValue(1));
121114
index = getListIndex(compiler, index, list, max);
122115
index = compiler->createSub(index, compiler->addConstValue(1));
123-
CompilerValue *cond = compiler->createAnd(compiler->createCmpGT(index, min), compiler->createCmpLT(index, max));
124-
compiler->beginIfStatement(cond);
125-
{
126-
CompilerValue *item = compiler->addInput("ITEM");
127-
compiler->createListInsert(list, index, item);
128-
}
129-
compiler->endIf();
116+
CompilerValue *item = compiler->addInput("ITEM");
117+
compiler->createListInsert(list, index, item);
130118
}
131119

132120
return nullptr;
@@ -139,17 +127,11 @@ CompilerValue *ListBlocks::compileReplaceItemOfList(Compiler *compiler)
139127

140128
if (list) {
141129
CompilerValue *index = compiler->addInput("INDEX");
142-
CompilerValue *min = compiler->addConstValue(-1);
143130
CompilerValue *max = compiler->addListSize(list);
144131
index = getListIndex(compiler, index, list, max);
145132
index = compiler->createSub(index, compiler->addConstValue(1));
146-
CompilerValue *cond = compiler->createAnd(compiler->createCmpGT(index, min), compiler->createCmpLT(index, max));
147-
compiler->beginIfStatement(cond);
148-
{
149-
CompilerValue *item = compiler->addInput("ITEM");
150-
compiler->createListReplace(list, index, item);
151-
}
152-
compiler->endIf();
133+
CompilerValue *item = compiler->addInput("ITEM");
134+
compiler->createListReplace(list, index, item);
153135
}
154136

155137
return nullptr;
@@ -162,13 +144,10 @@ CompilerValue *ListBlocks::compileItemOfList(Compiler *compiler)
162144

163145
if (list) {
164146
CompilerValue *index = compiler->addInput("INDEX");
165-
CompilerValue *min = compiler->addConstValue(-1);
166147
CompilerValue *max = compiler->addListSize(list);
167148
index = getListIndex(compiler, index, list, max);
168149
index = compiler->createSub(index, compiler->addConstValue(1));
169-
CompilerValue *cond = compiler->createAnd(compiler->createCmpGT(index, min), compiler->createCmpLT(index, max));
170-
CompilerValue *item = compiler->addListItem(list, index);
171-
return compiler->createSelect(cond, item, compiler->addConstValue(Value()), Compiler::StaticType::Unknown);
150+
return compiler->addListItem(list, index);
172151
}
173152

174153
return nullptr;

0 commit comments

Comments
 (0)