Changeset 818
- Timestamp:
- May 8, 2004, 1:20:38 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/examples/objc-runtime.lisp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/examples/objc-runtime.lisp
r812 r818 278 278 (let* ((image-count (#_ _dyld_image_count))) 279 279 (when (> image-count (car cfstring-sections)) 280 (flet ((func (sectaddr size) 281 (let* ((addr (%ptr-to-int sectaddr)) 282 (limit (+ addr size)) 283 (already (member addr (cdr cfstring-sections) :key #'car))) 284 (if already 285 (rplacd already limit) 286 (push (cons addr limit) (cdr cfstring-sections)))))) 280 287 (process-section-in-all-libraries 281 288 #$SEG_DATA 282 "__cfstring" 283 #'(lambda (sectaddr size) 284 (let* ((addr (%ptr-to-int sectaddr)) 285 (limit (+ addr size)) 286 (already (member addr (cdr cfstring-sections) :key #'car))) 287 (if already 288 (rplacd already limit) 289 (push (cons addr limit) (cdr cfstring-sections)))))) 290 (setf (car cfstring-sections) image-count)))) 289 "__const" 290 #'func) 291 (process-section-in-all-libraries 292 #$SEG_DATA 293 "__cfstr" 294 #'func))) 295 (setf (car cfstring-sections) image-count))) 291 296 (defun pointer-in-cfstring-section-p (ptr) 292 297 (let* ((addr (%ptr-to-int ptr))) … … 294 299 (when (and (>= addr (car s)) 295 300 (< addr (cdr s))) 296 (return t)))))) 301 (return t))))) 302 (defun cfstring-sections () 303 (cdr cfstring-sections))) 297 304 298 305 … … 348 355 349 356 (defun get-appkit-version () 350 (%get-double-float (foreign-symbol-address #+apple-objc "_NSAppKitVersionNumber" #+gnu-objc "NSAppKitVersionNumber"))) 357 #+apple-objc 358 #?NSAppKitVersionNumber 359 #+gnu-objc 360 (get-foundation-version)) 351 361 352 362 (defun get-foundation-version () 353 (%get-double-float (foreign-symbol-address #+apple-objc "_NSFoundationVersionNumber" #+gnu-objc "NSFoundationVersionNumber"))) 363 #?NSFoundationVersionNumber 364 #+gnu-objc (%get-cstring (foreign-symbol-address "gnustep_base_version"))) 354 365 355 366 (defparameter *appkit-library-version-number* (get-appkit-version)) … … 1565 1576 (progn 1566 1577 (defloadvar *original-deallocate-hook* 1567 (%get-ptr (foreign-symbol-address "__dealloc")))1578 #?_dealloc) 1568 1579 1569 1580 (defcallback deallocate-nsobject (:address obj :int) … … 1573 1584 1574 1585 (defun install-lisp-deallocate-hook () 1575 (setf (%get-ptr (foreign-symbol-address "__dealloc"))deallocate-nsobject))1586 (setf #?_dealloc deallocate-nsobject)) 1576 1587 1577 1588 #+later … … 1581 1592 (defun uninstall-lisp-deallocate-hook () 1582 1593 (clrhash *objc-object-slot-vectors*) 1583 (setf (%get-ptr (foreign-symbol-address "__dealloc"))*original-deallocate-hook*))1594 (setf #?_dealloc *original-deallocate-hook*)) 1584 1595 1585 1596 (pushnew #'uninstall-lisp-deallocate-hook *save-exit-functions* :test #'eq
Note:
See TracChangeset
for help on using the changeset viewer.
