Skip to content

Commit e3e2c6b

Browse files
committed
Removed recursion from accumulateParents
1 parent 075b0e6 commit e3e2c6b

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/main/java/org/jsoup/nodes/Element.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,9 +276,9 @@ public Elements parents() {
276276

277277
private static void accumulateParents(Element el, Elements parents) {
278278
Element parent = el.parent();
279-
if (parent != null && !parent.isNode("#root")) {
279+
while (parent != null && !parent.isNode("#root")) {
280280
parents.add(parent);
281-
accumulateParents(parent, parents);
281+
parent = parent.parent();
282282
}
283283
}
284284

src/test/java/org/jsoup/nodes/ElementTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,10 @@ public void testGetParents() {
256256
assertEquals("div", parents.get(1).tagName());
257257
assertEquals("body", parents.get(2).tagName());
258258
assertEquals("html", parents.get(3).tagName());
259+
260+
Element orphan = new Element("p");
261+
Elements none = orphan.parents();
262+
assertEquals(0, none.size());
259263
}
260264

261265
@Test

0 commit comments

Comments
 (0)