diff -r 9ab404cdcaa1 Modules/_tkinter.c --- a/Modules/_tkinter.c Thu Sep 04 17:29:52 2014 +0200 +++ b/Modules/_tkinter.c Thu Sep 04 17:45:04 2014 +0200 @@ -605,7 +605,7 @@ Tkapp_New(const char *screenName, const Tcl_SetVar(v->interp, "tcl_interactive", "0", TCL_GLOBAL_ONLY); /* This is used to get the application class for Tk 4.1 and up */ - argv0 = (char*)ckalloc(strlen(className) + 1); + argv0 = (char*)PyMem_Malloc(strlen(className) + 1); if (!argv0) { PyErr_NoMemory(); Py_DECREF(v); @@ -616,7 +616,7 @@ Tkapp_New(const char *screenName, const if (Py_ISUPPER(Py_CHARMASK(argv0[0]))) argv0[0] = Py_TOLOWER(Py_CHARMASK(argv0[0])); Tcl_SetVar(v->interp, "argv0", argv0, TCL_GLOBAL_ONLY); - ckfree(argv0); + PyMem_Free(argv0); if (! wantTk) { Tcl_SetVar(v->interp, @@ -639,7 +639,7 @@ Tkapp_New(const char *screenName, const if (use) len += strlen(use) + sizeof "-use "; - args = (char*)ckalloc(len); + args = (char*)PyMem_Malloc(len); if (!args) { PyErr_NoMemory(); Py_DECREF(v); @@ -657,7 +657,7 @@ Tkapp_New(const char *screenName, const } Tcl_SetVar(v->interp, "argv", args, TCL_GLOBAL_ONLY); - ckfree(args); + PyMem_Free(args); } if (Tcl_AppInit(v->interp) != TCL_OK) { @@ -912,15 +912,15 @@ AsObj(PyObject *value) "list is too long"); return NULL; } - argv = (Tcl_Obj **) ckalloc(((size_t)size) * sizeof(Tcl_Obj *)); - if(!argv) { + argv = (Tcl_Obj **) PyMem_Malloc(((size_t)size) * sizeof(Tcl_Obj *)); + if (!argv) { PyErr_NoMemory(); return NULL; } for (i = 0; i < size; i++) argv[i] = AsObj(PySequence_Fast_GET_ITEM(value,i)); result = Tcl_NewListObj(size, argv); - ckfree(FREECAST argv); + PyMem_Free(FREECAST argv); return result; } else if (PyUnicode_Check(value)) { @@ -944,7 +944,7 @@ AsObj(PyObject *value) if (kind == sizeof(Tcl_UniChar)) return Tcl_NewUnicodeObj(inbuf, size); allocsize = ((size_t)size) * sizeof(Tcl_UniChar); - outbuf = (Tcl_UniChar*)ckalloc(allocsize); + outbuf = (Tcl_UniChar*)PyMem_Malloc(allocsize); /* Else overflow occurred, and we take the next exit */ if (!outbuf) { PyErr_NoMemory(); @@ -961,14 +961,14 @@ AsObj(PyObject *value) "character U+%x is above the range " "(U+0000-U+FFFF) allowed by Tcl", ch); - ckfree(FREECAST outbuf); + PyMem_Free(FREECAST outbuf); return NULL; } #endif outbuf[i] = ch; } result = Tcl_NewUnicodeObj(outbuf, size); - ckfree(FREECAST outbuf); + PyMem_Free(FREECAST outbuf); return result; } else if(PyTclObject_Check(value)) { @@ -1080,7 +1080,7 @@ Tkapp_CallDeallocArgs(Tcl_Obj** objv, Tc for (i = 0; i < objc; i++) Tcl_DecrRefCount(objv[i]); if (objv != objStore) - ckfree(FREECAST objv); + PyMem_Free(FREECAST objv); } /* Convert Python objects to Tcl objects. This must happen in the @@ -1111,7 +1111,7 @@ Tkapp_CallArgs(PyObject *args, Tcl_Obj** "list is too long"); return NULL; } - objv = (Tcl_Obj **)ckalloc(((size_t)objc) * sizeof(Tcl_Obj *)); + objv = (Tcl_Obj **)PyMem_Malloc(((size_t)objc) * sizeof(Tcl_Obj *)); if (objv == NULL) { PyErr_NoMemory(); objc = 0; @@ -1247,7 +1247,7 @@ Tkapp_Call(PyObject *selfptr, PyObject * PyObject *exc_type, *exc_value, *exc_tb; if (!WaitForMainloop(self)) return NULL; - ev = (Tkapp_CallEvent*)ckalloc(sizeof(Tkapp_CallEvent)); + ev = (Tkapp_CallEvent*)PyMem_Malloc(sizeof(Tkapp_CallEvent)); ev->ev.proc = (Tcl_EventProc*)Tkapp_CallProc; ev->self = self; ev->args = args; @@ -1498,7 +1498,7 @@ var_invoke(EventFunc func, PyObject *sel if (!WaitForMainloop(self)) return NULL; - ev = (VarEvent*)ckalloc(sizeof(VarEvent)); + ev = (VarEvent*)PyMem_Malloc(sizeof(VarEvent)); ev->self = selfptr; ev->args = args; @@ -2098,7 +2098,7 @@ Tkapp_CreateCommand(PyObject *selfptr, P #ifdef WITH_THREAD if (self->threaded && self->thread_id != Tcl_GetCurrentThread()) { Tcl_Condition cond = NULL; - CommandEvent *ev = (CommandEvent*)ckalloc(sizeof(CommandEvent)); + CommandEvent *ev = (CommandEvent*)PyMem_Malloc(sizeof(CommandEvent)); ev->ev.proc = (Tcl_EventProc*)Tkapp_CommandProc; ev->interp = self->interp; ev->create = 1; @@ -2144,7 +2144,7 @@ Tkapp_DeleteCommand(PyObject *selfptr, P if (self->threaded && self->thread_id != Tcl_GetCurrentThread()) { Tcl_Condition cond = NULL; CommandEvent *ev; - ev = (CommandEvent*)ckalloc(sizeof(CommandEvent)); + ev = (CommandEvent*)PyMem_Malloc(sizeof(CommandEvent)); ev->ev.proc = (Tcl_EventProc*)Tkapp_CommandProc; ev->interp = self->interp; ev->create = 0;