ExecFunc.st
changeset 3421 78a276e71115
parent 3193 6eaf01d47d81
child 3924 48aee282d627
equal deleted inserted replaced
3420:4dc6667afda9 3421:78a276e71115
   111 
   111 
   112 %{  /* NOCONTEXT */
   112 %{  /* NOCONTEXT */
   113     unsigned INT addr;
   113     unsigned INT addr;
   114 
   114 
   115     if (__INST(code_) != nil) {
   115     if (__INST(code_) != nil) {
   116 	addr = (unsigned INT)__INST(code_);
   116         
   117 	if (addr <= _MAX_INT) {
   117         RETURN (__MKEXTERNALADDRESS(__INST(code_)));
   118 	    RETURN ( __MKSMALLINT(addr) );
   118 #ifdef OLD
   119 	}
   119         addr = (unsigned INT)__INST(code_);
   120 	RETURN ( __MKUINT(addr));
   120         if (addr <= _MAX_INT) {
       
   121             RETURN ( __MKSMALLINT(addr) );
       
   122         }
       
   123         RETURN ( __MKUINT(addr));
       
   124 #endif
   121     }
   125     }
   122 %}.
   126 %}.
   123     ^ nil
   127     ^ nil
   124 !
   128 !
   125 
   129 
   198      This method is for compiler support and very special cases (debugging) only
   202      This method is for compiler support and very special cases (debugging) only
   199      - do not use"
   203      - do not use"
   200 
   204 
   201 %{  /* NOCONTEXT */
   205 %{  /* NOCONTEXT */
   202 
   206 
   203     if (__isSmallInteger(anAddress))
   207     if (__isExternalAddress(anAddress)) {
   204 	__INST(code_) = (OBJ)(__intVal(anAddress));
   208         __INST(code_) = (OBJ)(__externalAddressVal(anAddress));
   205     else {
   209     } else {
   206 	if (anAddress == nil) {
   210         if (__isSmallInteger(anAddress))
   207 	    __INST(code_) = nil;
   211             __INST(code_) = (OBJ)(__intVal(anAddress));
   208 	} else {
   212         else {
   209 	    __INST(code_) = (OBJ)(__longIntVal(anAddress));
   213             if (anAddress == nil) {
   210 	}
   214                 __INST(code_) = nil;
       
   215             } else {
       
   216                 __INST(code_) = (OBJ)(__longIntVal(anAddress));
       
   217             }
       
   218         }
   211     }
   219     }
   212 %}
   220 %}
   213 ! !
   221 ! !
   214 
   222 
   215 !ExecutableFunction methodsFor:'queries'!
   223 !ExecutableFunction methodsFor:'queries'!
   334 ! !
   342 ! !
   335 
   343 
   336 !ExecutableFunction class methodsFor:'documentation'!
   344 !ExecutableFunction class methodsFor:'documentation'!
   337 
   345 
   338 version
   346 version
   339     ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExecFunc.st,v 1.35 1998-01-20 18:18:55 stefan Exp $'
   347     ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExecFunc.st,v 1.36 1998-05-07 17:45:56 cg Exp $'
   340 ! !
   348 ! !
   341 ExecutableFunction initialize!
   349 ExecutableFunction initialize!