Changeset 12455
- Timestamp:
- Jul 26, 2009, 9:49:18 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/objc-bridge/objc-clos.lisp
r12438 r12455 423 423 (with-cstrs ((name string) 424 424 (encoding encoding)) 425 (#_class_addIvar class name size align encoding) 425 (when (eql #$NO (#_class_addIvar class name size align encoding)) 426 (error "class_addIvar failed")) 426 427 (with-macptrs ((ivar (#_class_getInstanceVariable class name))) 427 428 429 430 428 (unless (%null-ptr-p ivar) 429 (let* ((offset (#_ivar_getOffset ivar))) 430 (setf (foreign-direct-slot-definition-bit-offset dslotd) 431 (ash offset 3)))))))))) 431 432 432 433 … … 458 459 ;;; each foreign direct slotd's offset field should already have been 459 460 ;;; set to the slot's bit offset. 460 #- apple-objc-2.0461 #-(or apple-objc-2.0 cocotron-objc) 461 462 (defun %make-objc-ivars (class) 462 463 (let* ((start-offset (superclass-instance-size class)) … … 544 545 (signed (foreign-integer-type-signed ftype))) 545 546 (if (= bits align) 546 ( ecase bits547 (case bits 547 548 (1 (values #'%get-bit #'%set-bit)) 548 549 (8 (values (if signed #'%get-signed-byte #'%get-unsigned-byte) … … 554 555 (64 (if signed 555 556 (values #'%%get-signed-longlong #'%%set-signed-longlong) 556 (values #'%%get-unsigned-longlong #'%%set-unsigned-longlong)))) 557 (values #'%%get-unsigned-longlong #'%%set-unsigned-longlong))) 558 (t (values #'(lambda (ptr offset) 559 (%get-bitfield ptr offset bits)) 560 #'(lambda (ptr offset new) 561 (setf (%get-bitfield ptr offset bits) new))))) 557 562 (values #'(lambda (ptr offset) 558 563 (%get-bitfield ptr offset bits))
Note: See TracChangeset
for help on using the changeset viewer.