Attachment "d96974d99d72.diff" to
ticket [d96974d9]
added by
chrstphrchvz
2023-10-10 10:04:30.
diff --git generic/tkBusy.c generic/tkBusy.c
index 5c5fb85e58..00ba73ed86 100644
--- generic/tkBusy.c
+++ generic/tkBusy.c
@@ -45,7 +45,7 @@ static void BusyCustodyProc(ClientData clientData,
static int ConfigureBusy(Tcl_Interp *interp, Busy *busyPtr,
int objc, Tcl_Obj *const objv[]);
static Busy * CreateBusy(Tcl_Interp *interp, Tk_Window tkRef);
-static void DestroyBusy(void *dataPtr);
+static Tcl_FreeProc DestroyBusy;
static void DoConfigureNotify(Tk_FakeWin *winPtr);
static inline Tk_Window FirstChild(Tk_Window parent);
static Busy * GetBusy(Tcl_Interp *interp,
@@ -137,7 +137,7 @@ BusyCustodyProc(
busyPtr);
TkpHideBusyWindow(busyPtr);
busyPtr->tkBusy = NULL;
- Tcl_EventuallyFree(busyPtr, (Tcl_FreeProc *)DestroyBusy);
+ Tcl_EventuallyFree(busyPtr, DestroyBusy);
}
/*
@@ -262,7 +262,7 @@ RefWinEventProc(
* Arrange for the busy structure to be removed at a proper time.
*/
- Tcl_EventuallyFree(busyPtr, (Tcl_FreeProc *)DestroyBusy);
+ Tcl_EventuallyFree(busyPtr, DestroyBusy);
break;
case ConfigureNotify:
@@ -333,7 +333,7 @@ RefWinEventProc(
static void
DestroyBusy(
- void *data) /* Busy window structure record */
+ char *data) /* Busy window structure record */
{
Busy *busyPtr = (Busy *)data;
@@ -383,7 +383,7 @@ BusyEventProc(
if (eventPtr->type == DestroyNotify) {
busyPtr->tkBusy = NULL;
- Tcl_EventuallyFree(busyPtr, (Tcl_FreeProc *)DestroyBusy);
+ Tcl_EventuallyFree(busyPtr, DestroyBusy);
}
}
@@ -901,7 +901,7 @@ Tk_BusyObjCmd(
return TCL_ERROR;
}
TkpHideBusyWindow(busyPtr);
- Tcl_EventuallyFree(busyPtr, (Tcl_FreeProc *)DestroyBusy);
+ Tcl_EventuallyFree(busyPtr, DestroyBusy);
return TCL_OK;
case BUSY_HOLD:
diff --git generic/tkCanvas.c generic/tkCanvas.c
index b80c197ba5..aaac122490 100644
--- generic/tkCanvas.c
+++ generic/tkCanvas.c
@@ -267,7 +267,7 @@ static void CanvasWorldChanged(ClientData instanceData);
static int ConfigureCanvas(Tcl_Interp *interp,
TkCanvas *canvasPtr, int objc,
Tcl_Obj *const *objv, int flags);
-static void DestroyCanvas(void *memPtr);
+static Tcl_FreeProc DestroyCanvas;
static void DisplayCanvas(ClientData clientData);
static void DoItem(Tcl_Obj *accumObj,
Tk_Item *itemPtr, Tk_Uid tag);
@@ -2168,7 +2168,7 @@ CanvasWidgetCmd(
static void
DestroyCanvas(
- void *memPtr) /* Info about canvas widget. */
+ char *memPtr) /* Info about canvas widget. */
{
TkCanvas *canvasPtr = (TkCanvas *)memPtr;
Tk_Item *itemPtr;
@@ -2730,7 +2730,7 @@ CanvasEventProc(
if (canvasPtr->flags & REDRAW_PENDING) {
Tcl_CancelIdleCall(DisplayCanvas, canvasPtr);
}
- Tcl_EventuallyFree(canvasPtr, (Tcl_FreeProc *) DestroyCanvas);
+ Tcl_EventuallyFree(canvasPtr, DestroyCanvas);
} else if (eventPtr->type == ConfigureNotify) {
canvasPtr->flags |= UPDATE_SCROLLBARS;
diff --git generic/tkEntry.c generic/tkEntry.c
index 86b79ac516..a5cf172069 100644
--- generic/tkEntry.c
+++ generic/tkEntry.c
@@ -396,7 +396,7 @@ static const char *const selElementNames[] = {
static int ConfigureEntry(Tcl_Interp *interp, Entry *entryPtr,
int objc, Tcl_Obj *const objv[]);
static int DeleteChars(Entry *entryPtr, int index, int count);
-static void DestroyEntry(void *memPtr);
+static Tcl_FreeProc DestroyEntry;
static void DisplayEntry(ClientData clientData);
static void EntryBlinkProc(ClientData clientData);
static void EntryCmdDeletedProc(ClientData clientData);
@@ -1021,9 +1021,9 @@ EntryWidgetObjCmd(
static void
DestroyEntry(
- void *memPtr) /* Info about entry widget. */
+ char *memPtr) /* Info about entry widget. */
{
- Entry *entryPtr = memPtr;
+ Entry *entryPtr = (Entry *) memPtr;
/*
* Free up all the stuff that requires special handling, then let
@@ -2498,7 +2498,7 @@ EntryEventProc(
if (entryPtr->flags & REDRAW_PENDING) {
Tcl_CancelIdleCall(DisplayEntry, clientData);
}
- Tcl_EventuallyFree(clientData, (Tcl_FreeProc *) DestroyEntry);
+ Tcl_EventuallyFree(clientData, DestroyEntry);
}
break;
case ConfigureNotify:
diff --git generic/tkFrame.c generic/tkFrame.c
index 4d69c16140..7c39625f0c 100644
--- generic/tkFrame.c
+++ generic/tkFrame.c
@@ -308,7 +308,7 @@ static int ConfigureFrame(Tcl_Interp *interp, Frame *framePtr,
static int CreateFrame(ClientData clientData, Tcl_Interp *interp,
int objc, Tcl_Obj *const objv[],
enum FrameType type, const char *appName);
-static void DestroyFrame(void *memPtr);
+static Tcl_FreeProc DestroyFrame;
static void DestroyFramePartly(Frame *framePtr);
static void DisplayFrame(ClientData clientData);
static void FrameCmdDeletedProc(ClientData clientData);
@@ -857,10 +857,10 @@ FrameWidgetObjCmd(
static void
DestroyFrame(
- void *memPtr) /* Info about frame widget. */
+ char *memPtr) /* Info about frame widget. */
{
- Frame *framePtr = memPtr;
- Labelframe *labelframePtr = memPtr;
+ Frame *framePtr = (Frame *) memPtr;
+ Labelframe *labelframePtr = (Labelframe *) memPtr;
if (framePtr->type == TYPE_LABELFRAME) {
Tk_FreeTextLayout(labelframePtr->textLayout);
@@ -1676,7 +1676,7 @@ FrameEventProc(
Tcl_CancelIdleCall(DisplayFrame, framePtr);
}
Tcl_CancelIdleCall(MapFrame, framePtr);
- Tcl_EventuallyFree(framePtr, (Tcl_FreeProc *) DestroyFrame);
+ Tcl_EventuallyFree(framePtr, DestroyFrame);
} else if (eventPtr->type == FocusIn) {
if (eventPtr->xfocus.detail != NotifyInferior) {
framePtr->flags |= GOT_FOCUS;
diff --git generic/tkGrid.c generic/tkGrid.c
index ac6b59bf4a..f1e06ba0cf 100644
--- generic/tkGrid.c
+++ generic/tkGrid.c
@@ -262,7 +262,7 @@ static int CheckSlotData(Gridder *containerPtr, int slot,
int slotType, int checkOnly);
static int ConfigureContent(Tcl_Interp *interp, Tk_Window tkwin,
int objc, Tcl_Obj *const objv[]);
-static void DestroyGrid(void *memPtr);
+static Tcl_FreeProc DestroyGrid;
static Gridder * GetGrid(Tk_Window tkwin);
static int GridAnchorCommand(Tk_Window tkwin, Tcl_Interp *interp,
int objc, Tcl_Obj *const objv[]);
@@ -2807,7 +2807,7 @@ Unlink(
static void
DestroyGrid(
- void *memPtr) /* Info about window that is now dead. */
+ char *memPtr) /* Info about window that is now dead. */
{
Gridder *gridPtr = (Gridder *)memPtr;
@@ -2890,7 +2890,7 @@ GridStructureProc(
Tcl_CancelIdleCall(ArrangeGrid, gridPtr);
}
gridPtr->tkwin = NULL;
- Tcl_EventuallyFree(gridPtr, (Tcl_FreeProc *)DestroyGrid);
+ Tcl_EventuallyFree(gridPtr, DestroyGrid);
} else if (eventPtr->type == MapNotify) {
if ((gridPtr->contentPtr != NULL)
&& !(gridPtr->flags & REQUESTED_RELAYOUT)) {
diff --git generic/tkListbox.c generic/tkListbox.c
index 64b16ee817..97b32f3a13 100644
--- generic/tkListbox.c
+++ generic/tkListbox.c
@@ -389,7 +389,7 @@ static int ConfigureListboxItem(Tcl_Interp *interp,
Tcl_Obj *const objv[], int index);
static int ListboxDeleteSubCmd(Listbox *listPtr,
int first, int last);
-static void DestroyListbox(void *memPtr);
+static Tcl_FreeProc DestroyListbox;
static void DestroyListboxOptionTables(ClientData clientData,
Tcl_Interp *interp);
static void DisplayListbox(ClientData clientData);
@@ -1436,9 +1436,9 @@ ListboxGetItemAttributes(
static void
DestroyListbox(
- void *memPtr) /* Info about listbox widget. */
+ char *memPtr) /* Info about listbox widget. */
{
- Listbox *listPtr = memPtr;
+ Listbox *listPtr = (Listbox *) memPtr;
Tcl_HashEntry *entry;
Tcl_HashSearch search;
@@ -2619,7 +2619,7 @@ ListboxEventProc(
if (listPtr->flags & REDRAW_PENDING) {
Tcl_CancelIdleCall(DisplayListbox, clientData);
}
- Tcl_EventuallyFree(clientData, (Tcl_FreeProc *) DestroyListbox);
+ Tcl_EventuallyFree(clientData, DestroyListbox);
}
} else if (eventPtr->type == ConfigureNotify) {
int vertSpace;
diff --git generic/tkMenu.c generic/tkMenu.c
index 95a3b95176..37f192894c 100644
--- generic/tkMenu.c
+++ generic/tkMenu.c
@@ -333,7 +333,7 @@ static void DeleteMenuCloneEntries(TkMenu *menuPtr,
static void DestroyMenuHashTable(ClientData clientData,
Tcl_Interp *interp);
static void DestroyMenuInstance(TkMenu *menuPtr);
-static void DestroyMenuEntry(void *memPtr);
+static Tcl_FreeProc DestroyMenuEntry;
static int GetIndexFromCoords(Tcl_Interp *interp,
TkMenu *menuPtr, const char *string,
int *indexPtr);
@@ -1177,7 +1177,7 @@ DestroyMenuInstance(
*/
Tcl_EventuallyFree(menuPtr->entries[i],
- (Tcl_FreeProc*)DestroyMenuEntry);
+ DestroyMenuEntry);
menuPtr->numEntries = i;
}
if (menuPtr->entries != NULL) {
@@ -1376,9 +1376,9 @@ UnhookCascadeEntry(
static void
DestroyMenuEntry(
- void *memPtr) /* Pointer to entry to be freed. */
+ char *memPtr) /* Pointer to entry to be freed. */
{
- TkMenuEntry *mePtr = memPtr;
+ TkMenuEntry *mePtr = (TkMenuEntry *) memPtr;
TkMenu *menuPtr = mePtr->menuPtr;
if (menuPtr->postedCascade == mePtr) {
@@ -1617,7 +1617,7 @@ ConfigureMenu(
} else if ((menuListPtr->numEntries > 0)
&& (menuListPtr->entries[0]->type == TEAROFF_ENTRY)) {
- Tcl_EventuallyFree(menuListPtr->entries[0], (Tcl_FreeProc *) DestroyMenuEntry);
+ Tcl_EventuallyFree(menuListPtr->entries[0], DestroyMenuEntry);
for (i = 0; i < menuListPtr->numEntries - 1; i++) {
menuListPtr->entries[i] = menuListPtr->entries[i + 1];
@@ -2386,7 +2386,7 @@ MenuAddOrInsert(
errorMenuPtr != NULL;
errorMenuPtr = errorMenuPtr->nextInstancePtr) {
Tcl_EventuallyFree(errorMenuPtr->entries[index],
- (Tcl_FreeProc *) DestroyMenuEntry);
+ DestroyMenuEntry);
for (i = index; i < errorMenuPtr->numEntries - 1; i++) {
errorMenuPtr->entries[i] = errorMenuPtr->entries[i + 1];
errorMenuPtr->entries[i]->index = i;
@@ -3521,7 +3521,7 @@ DeleteMenuCloneEntries(
for (menuListPtr = menuPtr->masterMenuPtr; menuListPtr != NULL;
menuListPtr = menuListPtr->nextInstancePtr) {
for (i = last; i >= first; i--) {
- Tcl_EventuallyFree(menuListPtr->entries[i], (Tcl_FreeProc *) DestroyMenuEntry);
+ Tcl_EventuallyFree(menuListPtr->entries[i], DestroyMenuEntry);
}
for (i = last + 1; i < menuListPtr->numEntries; i++) {
j = i - numDeleted;
diff --git generic/tkPack.c generic/tkPack.c
index b3b7228dd5..1412a9d397 100644
--- generic/tkPack.c
+++ generic/tkPack.c
@@ -120,7 +120,7 @@ static const Tk_GeomMgr packerType = {
static void ArrangePacking(ClientData clientData);
static int ConfigureContent(Tcl_Interp *interp, Tk_Window tkwin,
int objc, Tcl_Obj *const objv[]);
-static void DestroyPacker(void *memPtr);
+static Tcl_FreeProc DestroyPacker;
static Packer * GetPacker(Tk_Window tkwin);
static int PackAfter(Tcl_Interp *interp, Packer *prevPtr,
Packer *containerPtr, int objc,Tcl_Obj *const objv[]);
@@ -1388,7 +1388,7 @@ Unlink(
static void
DestroyPacker(
- void *memPtr) /* Info about packed window that is now
+ char *memPtr) /* Info about packed window that is now
* dead. */
{
Packer *packPtr = (Packer *)memPtr;
@@ -1465,7 +1465,7 @@ PackStructureProc(
Tcl_CancelIdleCall(ArrangePacking, packPtr);
}
packPtr->tkwin = NULL;
- Tcl_EventuallyFree(packPtr, (Tcl_FreeProc *) DestroyPacker);
+ Tcl_EventuallyFree(packPtr, DestroyPacker);
} else if (eventPtr->type == MapNotify) {
/*
* When a container gets mapped, must redo the geometry computation so
diff --git generic/tkSquare.c generic/tkSquare.c
index 61f86c5cc1..9b70ba3ee6 100644
--- generic/tkSquare.c
+++ generic/tkSquare.c
@@ -98,7 +98,6 @@ static const Tk_OptionSpec optionSpecs[] = {
static void SquareDeletedProc(ClientData clientData);
static int SquareConfigure(Tcl_Interp *interp, Square *squarePtr);
-static void SquareDestroy(void *memPtr);
static void SquareDisplay(ClientData clientData);
static void KeepInWindow(Square *squarePtr);
static void SquareObjEventProc(ClientData clientData,
@@ -410,7 +409,7 @@ SquareObjEventProc(
if (squarePtr->updatePending) {
Tcl_CancelIdleCall(SquareDisplay, squarePtr);
}
- Tcl_EventuallyFree(squarePtr, (Tcl_FreeProc *) SquareDestroy);
+ Tcl_EventuallyFree(squarePtr, TCL_DYNAMIC);
}
}
@@ -534,33 +533,6 @@ SquareDisplay(
}
}
-/*
- *----------------------------------------------------------------------
- *
- * SquareDestroy --
- *
- * This procedure is invoked by Tcl_EventuallyFree or Tcl_Release to
- * clean up the internal structure of a square at a safe time (when
- * no-one is using it anymore).
- *
- * Results:
- * None.
- *
- * Side effects:
- * Everything associated with the square is freed up.
- *
- *----------------------------------------------------------------------
- */
-
-static void
-SquareDestroy(
- void *memPtr) /* Info about square widget. */
-{
- Square *squarePtr = memPtr;
-
- ckfree(squarePtr);
-}
-
/*
*----------------------------------------------------------------------
*
diff --git generic/ttk/ttkWidget.c generic/ttk/ttkWidget.c
index 9fa8ec0ffb..75ca39cb08 100644
--- generic/ttk/ttkWidget.c
+++ generic/ttk/ttkWidget.c
@@ -201,15 +201,6 @@ WidgetInstanceObjCmdDeleted(ClientData clientData)
Tk_DestroyWindow(corePtr->tkwin);
}
-/* FreeWidget --
- * Final cleanup for widget; called via Tcl_EventuallyFree().
- */
-static void
-FreeWidget(void *memPtr)
-{
- ckfree(memPtr);
-}
-
/* DestroyWidget --
* Main widget destructor; called from <DestroyNotify> event handler.
*/
@@ -238,7 +229,7 @@ DestroyWidget(WidgetCore *corePtr)
/* NB: this can reenter the interpreter via a command traces */
Tcl_DeleteCommandFromToken(corePtr->interp, cmd);
}
- Tcl_EventuallyFree(corePtr, (Tcl_FreeProc *) FreeWidget);
+ Tcl_EventuallyFree(corePtr, TCL_DYNAMIC);
}
/*