hi
how come the follwing:
(alien-funcall
(extern-alien
"wrap_read_packet"
(function
av-error
(* t)
(* t)))
nil nil)
works and
the following:
(alien-funcall
(extern-alien
"wrap_read_packet"
(function
av-error
(* t)
(* (struct packet)))) ;; <-- the only difference
nil nil)
acts like it's entering some evil endless recursion:
; Compiling LAMBDA (#:G1031 #:G1032 #:G1033):
; [GC threshold exceeded with 12,015,528 bytes in use. Commencing GC.]
; [GC completed with 6,225,856 bytes retained and 5,789,672 bytes freed.]
; [GC will next occur when at least 18,225,856 bytes are in use.]
; [GC threshold exceeded with 18,234,240 bytes in use. Commencing GC.]
; [GC completed with 18,234,248 bytes retained and -8 bytes freed.]
; [GC will next occur when at least 30,234,248 bytes are in use.]
; [GC threshold exceeded with 30,243,712 bytes in use. Commencing GC.]
; [GC completed with 30,245,640 bytes retained and -1,928 bytes freed.]
; [GC will next occur when at least 42,245,640 bytes are in use.]
; [GC threshold exceeded with 42,255,104 bytes in use. Commencing GC.]
; [GC completed with 42,255,112 bytes retained and -8 bytes freed.]
; [GC will next occur when at least 54,255,112 bytes are in use.]
and dies somewhere here.
the struct packet is:
(def-alien-type av-packet
(struct packet
(:pts (integer 64))
(:data (* unsigned-char))
(:size int)
(:stream-index int)
(:flags int)
(:duration int)
(:destruct (* (function void (* (struct packet)))))
(:priv (* t))))
thanks
--
gr{oe|ee}t{en|ings}
artm