Changeset 818


Ignore:
Timestamp:
May 8, 2004, 1:20:38 PM (21 years ago)
Author:
Gary Byers
Message:

Use #?. Find cfstrings in const section, too.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/examples/objc-runtime.lisp

    r812 r818  
    278278    (let* ((image-count (#_ _dyld_image_count)))
    279279      (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))))))
    280287        (process-section-in-all-libraries
    281288         #$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)))
    291296  (defun pointer-in-cfstring-section-p (ptr)
    292297    (let* ((addr (%ptr-to-int ptr)))
     
    294299        (when (and (>= addr (car s))
    295300                   (< addr (cdr s)))
    296           (return t))))))
     301          (return t)))))
     302  (defun cfstring-sections ()
     303    (cdr cfstring-sections)))
    297304               
    298305                                         
     
    348355
    349356(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))
    351361
    352362(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")))
    354365
    355366(defparameter *appkit-library-version-number* (get-appkit-version))
     
    15651576(progn
    15661577(defloadvar *original-deallocate-hook*
    1567     (%get-ptr (foreign-symbol-address "__dealloc")))
     1578        #?_dealloc)
    15681579
    15691580(defcallback deallocate-nsobject (:address obj :int)
     
    15731584
    15741585(defun install-lisp-deallocate-hook ()
    1575   (setf (%get-ptr (foreign-symbol-address "__dealloc")) deallocate-nsobject))
     1586  (setf #?_dealloc deallocate-nsobject))
    15761587
    15771588#+later
     
    15811592(defun uninstall-lisp-deallocate-hook ()
    15821593  (clrhash *objc-object-slot-vectors*)
    1583   (setf (%get-ptr (foreign-symbol-address "__dealloc")) *original-deallocate-hook*))
     1594  (setf #?_dealloc *original-deallocate-hook*))
    15841595
    15851596(pushnew #'uninstall-lisp-deallocate-hook *save-exit-functions* :test #'eq
Note: See TracChangeset for help on using the changeset viewer.