Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  TCL_GETINTFROMOBJ (3)


Tcl_NewIntObj, Tcl_NewLongObj, Tcl_NewWideIntObj, Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, Tcl_GetIntFromObj, Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_NewBignumObj, Tcl_SetBignumObj, Tcl_GetBignumFromObj, Tcl_TakeBignumFromObj - manipulate Tcl objects as integer values




#include <tcl.h>

Tcl_Obj * Tcl_NewIntObj(intValue)

Tcl_Obj * Tcl_NewLongObj(longValue)

Tcl_Obj * Tcl_NewWideIntObj(wideValue)

Tcl_SetIntObj(objPtr, intValue)

Tcl_SetLongObj(objPtr, longValue)

Tcl_SetWideIntObj(objPtr, wideValue)

int Tcl_GetIntFromObj(interp, objPtr, intPtr)

int Tcl_GetLongFromObj(interp, objPtr, longPtr)

int Tcl_GetWideIntFromObj(interp, objPtr, widePtr)

#include <tclTomMath.h>

Tcl_Obj * Tcl_NewBignumObj(bigValue)

Tcl_SetBignumObj(objPtr, bigValue)

int Tcl_GetBignumFromObj(interp, objPtr, bigValue)

int Tcl_TakeBignumFromObj(interp, objPtr, bigValue)

int Tcl_InitBignumFromDouble(interp, doubleValue, bigValue)     \L’|0u-1v|’


.TP 15 int intValue (in)
int       intValue int Integer value used to initialize or set a Tcl object.
.TP 15 long longValue (in)
long      longValue long Long integer value used to initialize or set a Tcl object.
.TP 15 Tcl_WideInt wideValue (in)
Tcl_WideIntwideValue Tcl_WideInt Wide integer value used to initialize or set a Tcl object.
.TP 15 Tcl_Obj *objPtr (in/out)
Tcl_Obj   *objPtr Tcl_Obj For Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, and Tcl_SetBignumObj, this points to the object in which to store an integral value. For Tcl_GetIntFromObj, Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_GetBignumFromObj, and Tcl_TakeBignumFromObj, this refers to the object from which to retrieve an integral value.
.TP 15 Tcl_Interp *interp (in/out)
Tcl_Interp*interp Tcl_Interp When non-NULL, an error message is left here when integral value retrieval fails.
.TP 15 int *intPtr (out)
int       *intPtr int Points to place to store the integer value retrieved from objPtr.
.TP 15 long *longPtr (out)
long      *longPtr long Points to place to store the long integer value retrieved from objPtr.
.TP 15 Tcl_WideInt *widePtr (out)
Tcl_WideInt*widePtr Tcl_WideInt Points to place to store the wide integer value retrieved from objPtr.
.TP 15 mp_int *bigValue (in/out)
mp_int    *bigValue mp_int Points to a multi-precision integer structure declared by the LibTomMath library.



.TP 15 double doubleValue (in)
double    doubleValue double Double value from which the integer part is determined and used to initialize a multi-precision integer value.







These procedures are used to create, modify, and read Tcl objects that hold integral values.

The different routines exist to accomodate different integral types in C with which values might be exchanged. The C integral types for which Tcl provides value exchange routines are int, long int, Tcl_WideInt, and mp_int. The int and long int types are provided by the C language standard. The Tcl_WideInt type is a typedef defined to be whatever signed integral type covers at least the 64-bit integer range (-9223372036854775808 to 9223372036854775807). Depending on the platform and the C compiler, the actual type might be long int, long long int, int64, or something else. The mp_int type is a multiple-precision integer type defined by the LibTomMath multiple-precision integer library.

The Tcl_NewIntObj, Tcl_NewLongObj, Tcl_NewWideIntObj, and Tcl_NewBignumObj routines each create and return a new Tcl object initialized to the integral value of the argument. The returned Tcl object is unshared.

The Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, and Tcl_SetBignumObj routines each set the value of an existing Tcl object pointed to by objPtr to the integral value provided by the other argument. The objPtr argument must point to an unshared Tcl object. Any attempt to set the value of a shared Tcl object violates Tcl’s copy-on-write policy. Any existing string representation or internal representation in the unshared Tcl object will be freed as a consequence of setting the new value.

The Tcl_GetIntFromObj, Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_GetBignumFromObj, and Tcl_TakeBignumFromObj routines attempt to retrieve an integral value of the appropriate type from the Tcl object objPtr. If the attempt succeeds, then TCL_OK is returned, and the value is written to the storage provided by the caller. The attempt might fail if objPtr does not hold an integral value, or if the value exceeds the range of the target type. If the attempt fails, then TCL_ERROR is returned, and if interp is non-NULL, an error message is left in interp. The Tcl_ObjType of objPtr may be changed to make subsequent calls to the same routine more efficient. Unlike the other functions, Tcl_TakeBignumFromObj may set the content of the Tcl object objPtr to an empty string in the process of retrieving the multiple-precision integer value.

The choice between Tcl_GetBignumFromObj and Tcl_TakeBignumFromObj is governed by how the caller will continue to use objPtr. If after the mp_int value is retrieved from objPtr, the caller will make no more use of objPtr, then using Tcl_TakeBignumFromObj permits Tcl to detect when an unshared objPtr permits the value to be moved instead of copied, which should be more efficient. If anything later in the caller requires objPtr to continue to hold the same value, then Tcl_GetBignumFromObj must be chosen.

The Tcl_InitBignumFromDouble routine is a utility procedure that extracts the integer part of doubleValue and stores that integer value in the mp_int value bigValue.




Tcl_NewObj, Tcl_DecrRefCount, Tcl_IncrRefCount, Tcl_GetObjResult


integer, integer object, integer type, internal representation, object, object type, string representation
Search for    or go to Top of page |  Section 3 |  Main Index

Tcl TCL_INTOBJ (3) 8.5

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.