chiark
/
gitweb
/
~mdw
/
clg
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
656c140
)
New class REF-COUNTED-OBJECT
author
espen
<espen>
Fri, 12 Jan 2007 10:26:44 +0000
(10:26 +0000)
committer
espen
<espen>
Fri, 12 Jan 2007 10:26:44 +0000
(10:26 +0000)
gffi/defpackage.lisp
patch
|
blob
|
blame
|
history
gffi/proxy.lisp
patch
|
blob
|
blame
|
history
diff --git
a/gffi/defpackage.lisp
b/gffi/defpackage.lisp
index 949926b10387caf78ab223ccb01288d1893e0733..5dd116b596657a0a53bda8d079bc3180df8cec1a 100644
(file)
--- a/
gffi/defpackage.lisp
+++ b/
gffi/defpackage.lisp
@@
-20,7
+20,7
@@
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;; $Id: defpackage.lisp,v 1.
8 2007/01/02 16:03:22
espen Exp $
+;; $Id: defpackage.lisp,v 1.
9 2007/01/12 10:26:44
espen Exp $
(defpackage "GFFI"
(:use "COMMON-LISP" "AUTOEXPORT" "PKG-CONFIG" "CLG-UTILS")
(defpackage "GFFI"
(:use "COMMON-LISP" "AUTOEXPORT" "PKG-CONFIG" "CLG-UTILS")
@@
-91,6
+91,6
@@
(defpackage "GFFI"
"EFFECTIVE-ALIEN-SLOT-DEFINITION"
"DIRECT-VIRTUAL-ALIEN-SLOT-DEFINITION"
"EFFECTIVE-VIRTUAL-ALIEN-SLOT-DEFINITION"
"EFFECTIVE-ALIEN-SLOT-DEFINITION"
"DIRECT-VIRTUAL-ALIEN-SLOT-DEFINITION"
"EFFECTIVE-VIRTUAL-ALIEN-SLOT-DEFINITION"
- "FOREIGN-SIZE" "REF" "UNREF"
+ "FOREIGN-SIZE" "REF" "UNREF"
"REF-COUNTED-OBJECT"
"ENSURE-PROXY-INSTANCE" "MAKE-PROXY-INSTANCE" "STRUCT"
"STRUCT-CLASS" "STATIC-STRUCT-CLASS" "INLINED" "ADJUST-OFFSET"))
"ENSURE-PROXY-INSTANCE" "MAKE-PROXY-INSTANCE" "STRUCT"
"STRUCT-CLASS" "STATIC-STRUCT-CLASS" "INLINED" "ADJUST-OFFSET"))
diff --git
a/gffi/proxy.lisp
b/gffi/proxy.lisp
index 3670bdbd7d2db081f41d915c84b9cfe845962d0e..b3802b7d096a9156bc922a4b76088887d178bf36 100644
(file)
--- a/
gffi/proxy.lisp
+++ b/
gffi/proxy.lisp
@@
-20,7
+20,7
@@
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;; $Id: proxy.lisp,v 1.
5 2006/09/29 13:14:19
espen Exp $
+;; $Id: proxy.lisp,v 1.
6 2007/01/12 10:26:44
espen Exp $
(in-package "GFFI")
(in-package "GFFI")
@@
-499,6
+499,20
@@
(defmethod make-proxy-instance ((class proxy-class) location
(cache-instance instance)
instance))
(cache-instance instance)
instance))
+;;;; Superclass for ref-counted objects
+
+(defclass ref-counted-object (proxy)
+ ()
+ (:metaclass proxy-class))
+
+(define-type-method from-alien-form ((type ref-counted-object) form
+ &key (ref :copy))
+ (call-next-method type form :ref ref))
+
+(define-type-method from-alien-function ((type ref-counted-object)
+ &key (ref :copy))
+ (call-next-method type :ref ref))
+
;;;; Superclasses for wrapping of C structures
;;;; Superclasses for wrapping of C structures