chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] z3:encode-buffer hanging


From: Mario Domenech Goulart
Subject: [Chicken-users] z3:encode-buffer hanging
Date: 08 May 2007 12:17:20 -0300
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

Hi folks,

Maybe I'm misunderstanding the proper usage of z3:encode-buffer, but
it seems to hang when I use certain strings as argument.

Here are some examples:

(use z3 (srfi 1))

;(z3:encode-buffer "")       ; hangs
;(z3:encode-buffer "0")      ; hangs
;(z3:encode-buffer "00")     ; hangs
;(z3:encode-buffer "000")    ; hangs
;(z3:encode-buffer "0000")   ; ok
;(z3:encode-buffer "00000")  ; ok
;(z3:encode-buffer "000000") ; ok

;(z3:encode-buffer "abcdef")    ; hangs
;(z3:encode-buffer "abcdefab")  ; hangs
;(z3:encode-buffer "abcdefabc") ; ok

(define (data n)
  (apply conc (iota n)))

;(z3:encode-buffer (data 10))  ; hangs
;(z3:encode-buffer (data 15))  ; hangs
;(z3:encode-buffer (data 20))  ; ok
;(z3:encode-buffer (data 50))  ; ok

PS: "hangs" means the code seems to be in an endless loop.  Looks like
z is never NULL in encode_all (z3.scm) for the problem-strings.

>From encode_all (z3.scm): 

  do {
    z = z3d_encode(z, str + start, len, &taken, ptr, destlen, &given);
    start += taken;
    destlen -= given;
    ptr += given;
    len -= taken;
  } while(z != NULL);

Any hint?

Best wishes,
Mario




reply via email to

[Prev in Thread] Current Thread [Next in Thread]