Skip to content

Commit d4b4db6

Browse files
revert proposed change
1 parent 9ef0e60 commit d4b4db6

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/JSArrayIterProxy.cc

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,19 @@ PyObject *JSArrayIterProxyMethodDefinitions::JSArrayIterProxy_next(JSArrayIterPr
4545
return NULL;
4646
}
4747

48-
if ((self->it.reversed && self->it.it_index >= 0) || (!self->it.reversed && self->it.it_index < JSArrayProxyMethodDefinitions::JSArrayProxy_length((JSArrayProxy *)seq))) {
49-
JS::RootedValue *elementVal = new JS::RootedValue(GLOBAL_CX);
50-
self->it.it_index += self->it.reversed ? -1 : 1;
51-
JS_GetElement(GLOBAL_CX, ((JSArrayProxy *)seq)->jsArray, self->it.it_index, elementVal);
52-
return pyTypeFactory(GLOBAL_CX, new JS::RootedObject(GLOBAL_CX, JS::GetNonCCWObjectGlobal(((JSArrayProxy *)seq)->jsArray)), elementVal)->getPyObject();
48+
if (self->it.reversed) {
49+
if (self->it.it_index >= 0) {
50+
JS::RootedValue *elementVal = new JS::RootedValue(GLOBAL_CX);
51+
JS_GetElement(GLOBAL_CX, ((JSArrayProxy *)seq)->jsArray, self->it.it_index--, elementVal);
52+
return pyTypeFactory(GLOBAL_CX, new JS::RootedObject(GLOBAL_CX, JS::GetNonCCWObjectGlobal(((JSArrayProxy *)seq)->jsArray)), elementVal)->getPyObject();
53+
}
54+
}
55+
else {
56+
if (self->it.it_index < JSArrayProxyMethodDefinitions::JSArrayProxy_length((JSArrayProxy *)seq)) {
57+
JS::RootedValue *elementVal = new JS::RootedValue(GLOBAL_CX);
58+
JS_GetElement(GLOBAL_CX, ((JSArrayProxy *)seq)->jsArray, self->it.it_index++, elementVal);
59+
return pyTypeFactory(GLOBAL_CX, new JS::RootedObject(GLOBAL_CX, JS::GetNonCCWObjectGlobal(((JSArrayProxy *)seq)->jsArray)), elementVal)->getPyObject();
60+
}
5361
}
5462

5563
self->it.it_seq = NULL;

0 commit comments

Comments
 (0)