Cleanup app in with-app
Sun May 24 16:30:31 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Cleanup app in with-app
hunk ./src/application.lisp 12
- (*app*))
+ (*app*)
+ "No application.")
hunk ./src/application.lisp 44
-; (assert (null-pointer-p (smoke::pointer (core-application.instance))))
- (foreign-free argv)
- (foreign-free argc)
+ ;(assert (null-pointer-p (smoke::pointer (core-application.instance))))
+ (foreign-free argv)
+ (foreign-free argc)
hunk ./src/application.lisp 50
- (values (qt:new "QApplication" "QApplication$?" argc argv) t))))
+ (values (make-instance 'qt:application :args (list argc argv)) t))))
hunk ./src/application.lisp 53
- (when (typep (app) (find-class 'qt:application))
- (application.close-all-windows))
+; (when (typep (app) (find-class 'qt:application))
+; (application.close-all-windows))
hunk ./src/application.lisp 57
- ;(smoke::remove-object (smoke::pointer (app)))
- (smoke::delete-pointer (smoke::pointer (app)) (class-of (app)))
+ (smoke::remove-object (smoke::pointer (app)))
+ ;; FIXME leak memory or memory fault!
+ ;(smoke::delete-pointer (smoke::pointer (app)) (class-of (app)))
hunk ./src/application.lisp 61
-; (foreign-free argc)
- (setf argc (null-pointer))
-; (foreign-free argv)
- (setf argv (null-pointer))
hunk ./src/application.lisp 64
- `(progn (setf *app* ,ensure-app)
- (unwind-protect
- (progn
- ,@body))))
+ (let ((cleanup-p (gensym)))
+ `(multiple-value-bind (*app* ,cleanup-p) ,ensure-app
+ (unwind-protect
+ (progn ,@body)
+ (when ,cleanup-p
+ ,remove-app)))))
hunk ./src/package.lisp 3
- (:export #:new
- #:call
+ (:export #:call
hunk ./src/qt.lisp 37
-(defun new (class-name method-name &rest args)
- (apply #'new-object (smoke::binding *qt-smoke*) class-name method-name args))
-