IUP

Check-in [d42d57606e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Flush the main loop after widget destruction before clearing the registry
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:d42d57606e60f738ed0b8f209c7a82924473f950
User & Date: murphy 2015-08-07 16:01:58
Context
2015-10-15
05:58
Canvas pointer marshalling for callbacks check-in: fb90ae1afa user: murphy tags: trunk
2015-08-07
16:01
Flush the main loop after widget destruction before clearing the registry check-in: d42d57606e user: murphy tags: trunk
2015-08-06
15:17
Improved return value marshalling in CHICKEN callback wrapper check-in: ab22068543 user: murphy tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to chicken/iup-base.scm.

417
418
419
420
421
422
423

424
425
426
427
428
429
430
							 (fold-ec acc (:children child handle)
								 child collect-handles)))]
           [handle-destroy!
            (foreign-safe-lambda void "IupDestroy" nonnull-ihandle)])
    (lambda (handle)
			(let ([handles (collect-handles handle '())])
				(handle-destroy! handle)

				(for-each registry-clear! handles)))))

(define map-peer!
	(letrec ([map-peer/raw! (foreign-safe-lambda istatus "IupMap" nonnull-ihandle)])
		(lambda (handle)
			(let ([status (map-peer/raw! handle)])
				(case status







>







417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
							 (fold-ec acc (:children child handle)
								 child collect-handles)))]
           [handle-destroy!
            (foreign-safe-lambda void "IupDestroy" nonnull-ihandle)])
    (lambda (handle)
			(let ([handles (collect-handles handle '())])
				(handle-destroy! handle)
				(main-loop-flush)
				(for-each registry-clear! handles)))))

(define map-peer!
	(letrec ([map-peer/raw! (foreign-safe-lambda istatus "IupMap" nonnull-ihandle)])
		(lambda (handle)
			(let ([status (map-peer/raw! handle)])
				(case status

Changes to racket/base.rkt.

330
331
332
333
334
335
336

337
338
339
340
341
342
343
           [handle-destroy!
            (get-ffi-obj
             "IupDestroy" libiup
             (_fun [handle : _ihandle] -> _void))])
    (λ (handle)
      (let ([handles (collect-handles handle null)])
        (handle-destroy! handle)

        (for-each registry-clear! handles)))))

(define map-peer!
  (get-ffi-obj
   "IupMap" libiup
   (_fun [handle : _ihandle] -> [status : _istatus]
         -> (case status







>







330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
           [handle-destroy!
            (get-ffi-obj
             "IupDestroy" libiup
             (_fun [handle : _ihandle] -> _void))])
    (λ (handle)
      (let ([handles (collect-handles handle null)])
        (handle-destroy! handle)
        (main-loop-flush)
        (for-each registry-clear! handles)))))

(define map-peer!
  (get-ffi-obj
   "IupMap" libiup
   (_fun [handle : _ihandle] -> [status : _istatus]
         -> (case status