]> jfr.im git - yt-dlp.git/commitdiff
Remove recursion in at_insert()
authorJody Bruchon <redacted>
Thu, 17 Sep 2020 19:08:33 +0000 (15:08 -0400)
committerJody Bruchon <redacted>
Thu, 17 Sep 2020 19:08:33 +0000 (15:08 -0400)
youtube_dlc/YoutubeDL.py

index dbf8915d0526a6ac361d21563bafa422ece256d4..bae42bf3700142bf610e3bcc807a38231da7d597 100644 (file)
@@ -120,19 +120,31 @@ def __init__(self, line):
         self.line = line
 
     def at_insert(self, line):
-        if self.line:
-            if line < self.line:
-                if self.left is None:
-                    self.left = ArchiveTree(line)
-                else:
-                    self.left.at_insert(line)
-            elif line > self.line:
-                if self.right is None:
-                    self.right = ArchiveTree(line)
+#        print("at_insert: ", line)
+        cur = self
+        while True:
+#            print("comparing ", line, cur.line)
+            if cur.line:
+                if line < cur.line:
+                    if cur.left is None:
+                        cur.left = ArchiveTree(line)
+                        return
+                    else:
+                        cur = cur.left
+                        continue
+                elif line > cur.line:
+                    if cur.right is None:
+                        cur.right = ArchiveTree(line)
+                        return
+                    else:
+                        cur = cur.right
+                        continue
                 else:
-                    self.right.at_insert(line)
-        else:
-            self.line = line
+                    # Duplicate line found
+                    return
+            else:
+                cur.line = line
+                return
 
     def at_exist(self, line):
         if self.line is None:
@@ -417,6 +429,9 @@ def check_deprecated(param, option, suggestion):
                 return True
             return False
 
+        if self.params.get('verbose'):
+            self.to_stdout('[debug] Loading archive file %r' % self.params.get('download_archive'))
+
         preload_download_archive(self)
 
         if check_deprecated('cn_verification_proxy', '--cn-verification-proxy', '--geo-verification-proxy'):