]> git.jsancho.org Git - guile-assimp.git/commitdiff
Resolve VM Stack Overflow when reading mesh vertices
authorJavier Sancho <jsf@jsancho.org>
Tue, 15 Jul 2014 13:01:51 +0000 (15:01 +0200)
committerJavier Sancho <jsf@jsancho.org>
Tue, 15 Jul 2014 13:01:51 +0000 (15:01 +0200)
* src/low-level.scm: Function array implemented with tail recursion.

src/low-level.scm

index 7842acad035457579ea34c328777fd38028662d7..d604789712e14939ca66c66fa64c3a1cb4baf6b3 100644 (file)
   (cond ((= (pointer-address root) 0)
         '())
        (else
-        (let loop ((i 0))
-          (cond ((= i size)
-                 '())
-                (else
-                 (cons (element-proc root (* element-size i))
-                       (loop (+ i 1)))))))))
+        (reverse
+         (let loop ((i 0) (res '()))
+           (cond ((= i size)
+                  res)
+                 (else
+                  (loop (+ i 1) (cons (element-proc root (* element-size i)) res)))))))))
 
 (define (get-element-address root-pointer offset)
   (make-pointer (+ (pointer-address root-pointer) offset)))