Skip to content

Commit 0444f85

Browse files
authored
Merge pull request #2332 from mgreter/bugfix/issue-2330
Fix for loop variable to be referenced (force a copy)
2 parents 0763336 + d5e45bb commit 0444f85

File tree

2 files changed

+4
-10
lines changed

2 files changed

+4
-10
lines changed

src/eval.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,14 @@ namespace Sass {
185185
// only create iterator once in this environment
186186
Env env(environment(), true);
187187
exp.env_stack.push_back(&env);
188-
Number_Ptr it = SASS_MEMORY_NEW(Number, low->pstate(), start, sass_end->unit());
189-
env.set_local(variable, it);
190188
Block_Obj body = f->block();
191189
Expression_Ptr val = 0;
192190
if (start < end) {
193191
if (f->is_inclusive()) ++end;
194192
for (double i = start;
195193
i < end;
196194
++i) {
197-
it->value(i);
195+
Number_Obj it = SASS_MEMORY_NEW(Number, low->pstate(), i, sass_end->unit());
198196
env.set_local(variable, it);
199197
val = body->perform(this);
200198
if (val) break;
@@ -204,7 +202,7 @@ namespace Sass {
204202
for (double i = start;
205203
i > end;
206204
--i) {
207-
it->value(i);
205+
Number_Obj it = SASS_MEMORY_NEW(Number, low->pstate(), i, sass_end->unit());
208206
env.set_local(variable, it);
209207
val = body->perform(this);
210208
if (val) break;

src/expand.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -434,16 +434,13 @@ namespace Sass {
434434
Env env(environment(), true);
435435
env_stack.push_back(&env);
436436
call_stack.push_back(f);
437-
Number_Obj it = SASS_MEMORY_NEW(Number, low->pstate(), start, sass_end->unit());
438-
env.set_local(variable, it);
439437
Block_Ptr body = f->block();
440438
if (start < end) {
441439
if (f->is_inclusive()) ++end;
442440
for (double i = start;
443441
i < end;
444442
++i) {
445-
it = SASS_MEMORY_COPY(it);
446-
it->value(i);
443+
Number_Obj it = SASS_MEMORY_NEW(Number, low->pstate(), i, sass_end->unit());
447444
env.set_local(variable, it);
448445
append_block(body);
449446
}
@@ -452,8 +449,7 @@ namespace Sass {
452449
for (double i = start;
453450
i > end;
454451
--i) {
455-
it = SASS_MEMORY_COPY(it);
456-
it->value(i);
452+
Number_Obj it = SASS_MEMORY_NEW(Number, low->pstate(), i, sass_end->unit());
457453
env.set_local(variable, it);
458454
append_block(body);
459455
}

0 commit comments

Comments
 (0)