26static long myiddisc_map(
void *state,
int objtype,
char *
str, uint64_t *
id,
int createflag) {
38 *
id = (uint64_t)(uintptr_t)
s;
77 return (
char *)(uintptr_t)
id;
85 Tcl_Interp *interp = ictx->
interp;
86 Tcl_CmdProc *proc =
NULL;
95 Tcl_CreateCommand(interp,
obj2cmd(obj), proc, (ClientData) gctx,
NULL);
Memory allocation wrappers that exit on failure.
static void * gv_alloc(size_t size)
int agstrfree(Agraph_t *, const char *)
char * agstrdup(Agraph_t *, const char *)
returns a pointer to a reference-counted copy of the argument string, creating one if necessary
char * agstrbind(Agraph_t *g, const char *)
textitem scanner parser str
object ID allocator discipline
int edgecmd(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[])
int graphcmd(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[])
static void myiddisc_free(void *state, int objtype, uint64_t id)
static char * myiddisc_print(void *state, int objtype, uint64_t id)
static long myiddisc_map(void *state, int objtype, char *str, uint64_t *id, int createflag)
static long myiddisc_alloc(void *state, int objtype, uint64_t request_id)
static void * myiddisc_open(Agraph_t *g, Agdisc_t *disc)
static void myiddisc_idregister(void *state, int objtype, void *obj)
int nodecmd(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[])
char * obj2cmd(void *obj)