ClassLoadInProgressQuery.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 17 Jun 2015 06:22:00 +0100
branchjv
changeset 18487 8735bd9eee2f
parent 17348 828f0cfcb5cb
child 23868 f7295016cf59
permissions -rw-r--r--
Use inlined FNV1a hash for String ...and do not use __symbolHash(). Although currently the VM also uses FNV1a hash for Symbols, the __symbolHash() does not handle properly character with codepoint 0 (because '\0' is used as a string terminator). This causes problems with Unicode16/32Strigs whose version of FNV1a hash is using object size from header to determine string's end. Added Symbol>>hash that actually *uses* the __symbolHash() to make sure it's hash is the the same as used bu the VM. Symbols with zeroes are rare and there's no Unicode16/32Symbol. This commit fixes issue #65.

"{ Package: 'stx:libbasic' }"

"{ NameSpace: Smalltalk }"

LoadInProgressQuery subclass:#ClassLoadInProgressQuery
	instanceVariableNames:'classNameBeingLoaded'
	classVariableNames:''
	poolDictionaries:''
	category:'Kernel-Exceptions-Queries'
!

!ClassLoadInProgressQuery class methodsFor:'documentation'!

documentation
"
    This query is answered during class loading,
    and allows for browsers to defer their updates.
    E.g. to bundle redraws when multiple changes are to come
    for a class or package.
"
! !

!ClassLoadInProgressQuery class methodsFor:'answering queries during load'!

answerNotifyLoading:what do:aBlock
    [
        Smalltalk changed:#preClassLoad with:what.
        self answer:true do:aBlock
    ] ensure:[
        Smalltalk changed:#postClassLoad with:what.
    ].
! !

!ClassLoadInProgressQuery class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libbasic/ClassLoadInProgressQuery.st,v 1.1 2015-02-01 13:19:23 cg Exp $'
!

version_CVS
    ^ '$Header: /cvs/stx/stx/libbasic/ClassLoadInProgressQuery.st,v 1.1 2015-02-01 13:19:23 cg Exp $'
! !