Tk Source Code

Changes On Branch bug-f52986c698
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch bug-f52986c698 Excluding Merge-Ins

This is equivalent to a diff from f50205b9 to d81bc25a

2024-10-11
09:41
Fix [f52986c698]: SIGABRT from Tk_DeleteErrorHandler(). Backport some code cleanup from Tk 9.0 check-in: 9a633930 user: jan.nijtmans tags: core-8-6-branch
2024-10-09
20:06
Fix [eb332846f3]: [grid] and [pack] with half-dead argument can cause hangup or even crash. check-in: eb220923 user: fvogel tags: core-8-6-branch
2024-10-07
20:47
Fix candidate for [f52986c698]: SIGABRT from Tk_DeleteErrorHandler(). From AndroWish (thanks to chw). Closed-Leaf check-in: d81bc25a user: fvogel tags: bug-f52986c698
20:44
Inconspicuous logic change in Tk_MeasureChars(), from AndroWish. See [f52986c698]. check-in: d6508b17 user: fvogel tags: bug-f52986c698
2024-10-03
08:30
Update links, pointing to the 9.0 release as well check-in: 1f3b4fef user: jan.nijtmans tags: core-8-branch
08:27
Update links, pointing to the 9.0 release as well check-in: f50205b9 user: jan.nijtmans tags: core-8-6-branch
2024-09-27
20:21
Fix [1f3de1c387]: Redundant [expr] in tests. check-in: ce260f2d user: fvogel tags: core-8-6-branch

Changes to generic/tkError.c.
161
162
163
164
165
166
167







168
169
170
171
172
173
174
     * pile up, then clean them all at once. This adds a bit of overhead to
     * errors that might occur while the dead handlers are hanging around, but
     * reduces the overhead of scanning the list to clean up (particularly if
     * there are many handlers that stay around forever).
     */

    dispPtr->deleteCount += 1;







    if (dispPtr->deleteCount >= 10) {
	TkErrorHandler *prevPtr;
	TkErrorHandler *nextPtr;
	int lastSerial = LastKnownRequestProcessed(dispPtr->display);

	/*
	 * Last chance to catch errors for this handler: if no event/error







>
>
>
>
>
>
>







161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
     * pile up, then clean them all at once. This adds a bit of overhead to
     * errors that might occur while the dead handlers are hanging around, but
     * reduces the overhead of scanning the list to clean up (particularly if
     * there are many handlers that stay around forever).
     */

    dispPtr->deleteCount += 1;

    /*
     * Ensure that no user callback for this handler is invoked any further.
     */

    errorPtr->errorProc = NULL;

    if (dispPtr->deleteCount >= 10) {
	TkErrorHandler *prevPtr;
	TkErrorHandler *nextPtr;
	int lastSerial = LastKnownRequestProcessed(dispPtr->display);

	/*
	 * Last chance to catch errors for this handler: if no event/error
Changes to unix/tkUnixRFont.c.
774
775
776
777
778
779
780
781


782
783
784
785
786
787
788
#endif /* DEBUG_FONTSEL */
	ftFont = GetFont(fontPtr, c, 0.0);

	if (!errorFlag) {
	    LOCK;
	    XftTextExtents32(fontPtr->display, ftFont, &c, 1, &extents);
	    UNLOCK;
	} else {


	    extents.xOff = 0;
	    errorFlag = 0;
	}

	newX = curX + extents.xOff;
	newByte = curByte + clen;
	if (maxLength >= 0 && newX > maxLength) {







<
>
>







774
775
776
777
778
779
780

781
782
783
784
785
786
787
788
789
#endif /* DEBUG_FONTSEL */
	ftFont = GetFont(fontPtr, c, 0.0);

	if (!errorFlag) {
	    LOCK;
	    XftTextExtents32(fontPtr->display, ftFont, &c, 1, &extents);
	    UNLOCK;

	}
	if (errorFlag) {
	    extents.xOff = 0;
	    errorFlag = 0;
	}

	newX = curX + extents.xOff;
	newByte = curByte + clen;
	if (maxLength >= 0 && newX > maxLength) {