Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | 3574893 Add overlooked toplevel ref count maintenance in the [wm manage|forget] operations that could cause segfaults due to premature free of structs. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-5-branch |
Files: | files | file ages | folders |
SHA1: |
0e4d8eb0465070ac0ecbe4ce0166a7df |
User & Date: | dgp 2012-10-24 19:03:03 |
Context
2012-11-05
| ||
20:54 | Update changes for 8.5.13. check-in: ee2c5639 user: dgp tags: core-8-5-branch | |
18:49 | Release branch for Tk 8.5.13. check-in: 12ca1b7f user: dgp tags: core-8-5-13-rc | |
2012-10-24
| ||
19:21 | 3574893 Add overlooked toplevel ref count maintenance in the [wm manage|forget] operations that could cause segfaults due to premature free of structs. check-in: bda8f8dc user: dgp tags: trunk | |
19:03 | 3574893 Add overlooked toplevel ref count maintenance in the [wm manage|forget] operations that could cause segfaults due to premature free of structs. check-in: 0e4d8eb0 user: dgp tags: core-8-5-branch | |
2012-10-23
| ||
13:28 |
sync nmakehlp.c with Tcl version
purge spaces at end of lines clean-up unix/Makefile.in after carbon removal check-in: 9e2fc38c user: jan.nijtmans tags: core-8-5-branch | |
Changes
Changes to ChangeLog.
1 2 3 4 5 6 7 | 2012-10-23 Jan Nijtmans <[email protected]> * generic/tkButton.h: Backport of ::tk::mac::useCompatibilityMetrics * generic/tkButton.c handling and scrollbar metrics handling from trunk. * generic/tkScrollbar.h * generic/tkScrollbar.c * macosx/tkMacOSXButton.c | > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 | 2012-10-24 Don Porter <[email protected]> * macosx/tkMacOSXWm.c: [Bug 3574893] Add overlooked toplevel ref count maintenance in the [wm manage|forget] operations that could cause segfaults due to premature free of structs. 2012-10-23 Jan Nijtmans <[email protected]> * generic/tkButton.h: Backport of ::tk::mac::useCompatibilityMetrics * generic/tkButton.c handling and scrollbar metrics handling from trunk. * generic/tkScrollbar.h * generic/tkScrollbar.c * macosx/tkMacOSXButton.c |
︙ | ︙ |
Changes to macosx/tkMacOSXWm.c.
︙ | ︙ | |||
1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 | Tk_MakeWindowExist(winPtr->parentPtr); macWin = (MacDrawable *) winPtr->window; TkFocusJoin(winPtr); Tk_UnmapWindow(frameWin); macWin->toplevel = winPtr->parentPtr->privatePtr->toplevel; macWin->flags &= ~TK_HOST_EXISTS; TkWmDeadWindow(winPtr); RemapWindows(winPtr, (MacDrawable *) winPtr->parentPtr->window); winPtr->flags &=~(TK_TOP_HIERARCHY|TK_TOP_LEVEL|TK_HAS_WRAPPER|TK_WIN_MANAGED); | > > | 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 | Tk_MakeWindowExist(winPtr->parentPtr); macWin = (MacDrawable *) winPtr->window; TkFocusJoin(winPtr); Tk_UnmapWindow(frameWin); macWin->toplevel->referenceCount--; macWin->toplevel = winPtr->parentPtr->privatePtr->toplevel; macWin->toplevel->referenceCount++; macWin->flags &= ~TK_HOST_EXISTS; TkWmDeadWindow(winPtr); RemapWindows(winPtr, (MacDrawable *) winPtr->parentPtr->window); winPtr->flags &=~(TK_TOP_HIERARCHY|TK_TOP_LEVEL|TK_HAS_WRAPPER|TK_WIN_MANAGED); |
︙ | ︙ | |||
2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 | macWin = (MacDrawable *) winPtr->window; } TkWmMapWindow(winPtr); Tk_UnmapWindow(frameWin); } wmPtr = winPtr->wmInfoPtr; winPtr->flags &= ~TK_MAPPED; macWin->toplevel = macWin; RemapWindows(winPtr, macWin); winPtr->flags |= (TK_TOP_HIERARCHY|TK_TOP_LEVEL|TK_HAS_WRAPPER|TK_WIN_MANAGED); TkMapTopFrame(frameWin); } else if (Tk_IsTopLevel(frameWin)) { /* Already managed by wm - ignore it */ } | > > | 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 | macWin = (MacDrawable *) winPtr->window; } TkWmMapWindow(winPtr); Tk_UnmapWindow(frameWin); } wmPtr = winPtr->wmInfoPtr; winPtr->flags &= ~TK_MAPPED; macWin->toplevel->referenceCount--; macWin->toplevel = macWin; macWin->toplevel->referenceCount++; RemapWindows(winPtr, macWin); winPtr->flags |= (TK_TOP_HIERARCHY|TK_TOP_LEVEL|TK_HAS_WRAPPER|TK_WIN_MANAGED); TkMapTopFrame(frameWin); } else if (Tk_IsTopLevel(frameWin)) { /* Already managed by wm - ignore it */ } |
︙ | ︙ | |||
6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 | * Remove the OS specific window. It will get rebuilt when the window gets * Mapped. */ if (winPtr->window != None) { MacDrawable *macWin = (MacDrawable *) winPtr->window; macWin->toplevel = parentWin->toplevel; winPtr->flags &= ~TK_MAPPED; #ifdef TK_REBUILD_TOPLEVEL winPtr->flags |= TK_REBUILD_TOPLEVEL; #endif } /* Repeat for all the children */ | > > | 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 | * Remove the OS specific window. It will get rebuilt when the window gets * Mapped. */ if (winPtr->window != None) { MacDrawable *macWin = (MacDrawable *) winPtr->window; macWin->toplevel->referenceCount--; macWin->toplevel = parentWin->toplevel; macWin->toplevel->referenceCount++; winPtr->flags &= ~TK_MAPPED; #ifdef TK_REBUILD_TOPLEVEL winPtr->flags |= TK_REBUILD_TOPLEVEL; #endif } /* Repeat for all the children */ |
︙ | ︙ |