diff --git a/Sources/HTMLDOMUtils.h b/Sources/HTMLDOMUtils.h
index 2b62d59..b792197 100644
--- a/Sources/HTMLDOMUtils.h
+++ b/Sources/HTMLDOMUtils.h
@@ -12,3 +12,4 @@
@class HTMLNode;
extern HTMLNode * GetCommonAncestorContainer(HTMLNode *nodeA, HTMLNode *nodeB);
+extern NSArray * GetAncestorNodes(HTMLNode *node);
diff --git a/Sources/HTMLDOMUtils.m b/Sources/HTMLDOMUtils.m
index 45a95ef..efc2d82 100644
--- a/Sources/HTMLDOMUtils.m
+++ b/Sources/HTMLDOMUtils.m
@@ -21,3 +21,12 @@ extern HTMLNode * GetCommonAncestorContainer(HTMLNode *nodeA, HTMLNode *nodeB)
return nil;
}
+
+extern NSArray * GetAncestorNodes(HTMLNode *node)
+{
+ NSMutableArray *ancestors = [NSMutableArray array];
+ for (HTMLNode *it = node; it; it = it.parentNode) {
+ [ancestors addObject:it];
+ }
+ return ancestors;
+}
diff --git a/Sources/HTMLNode.m b/Sources/HTMLNode.m
index c2aecba..9ba3bd3 100644
--- a/Sources/HTMLNode.m
+++ b/Sources/HTMLNode.m
@@ -17,6 +17,7 @@
#import "HTMLNodeFilter.h"
#import "CSSSelector.h"
#import "HTMLDocument+Private.h"
+#import "HTMLDOMUtils.h"
@interface HTMLNode ()
{
@@ -343,16 +344,9 @@
return HTMLDocumentPositionEquivalent;
}
- NSArray * (^ ancestorNodes) (HTMLNode *) = ^ NSArray * (HTMLNode *node) {
- NSMutableArray *ancestors = [NSMutableArray array];
- for (HTMLNode *node = self; node; node = node.parentNode) {
- [ancestors addObject:node];
- }
- return ancestors;
- };
- NSArray *ancestors1 = ancestorNodes(self);
- NSArray *ancestors2 = ancestorNodes(otherNode);
+ NSArray *ancestors1 = GetAncestorNodes(self);
+ NSArray *ancestors2 = GetAncestorNodes(otherNode);
if (ancestors1.lastObject != ancestors2.lastObject) {
return HTMLDocumentPositionDisconnected |