summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpspjuth <peter.spjuth@gmail.com>2011-04-22 18:21:05 (GMT)
committerpspjuth <peter.spjuth@gmail.com>2011-04-22 18:21:05 (GMT)
commit241ce388b466cd9ccd0c7ab90aa1a5c3e2fb3f09 (patch)
tree5bb443774b1c95de47d0ef87d86d34d6156cf862
parentbfadafaee53e84d53076880ad0e586c7d36ce96c (diff)
parent96d0f850a44c11b73df5d7ca2f775a03d4ecf085 (diff)
downloadtk-241ce388b466cd9ccd0c7ab90aa1a5c3e2fb3f09.zip
tk-241ce388b466cd9ccd0c7ab90aa1a5c3e2fb3f09.tar.gz
tk-241ce388b466cd9ccd0c7ab90aa1a5c3e2fb3f09.tar.bz2
[Bug 3291543] There was a crash if dchars removed all coordinates of a polygon.
-rw-r--r--ChangeLog5
-rw-r--r--generic/tkCanvPoly.c1
-rw-r--r--tests/canvas.test8
3 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c17319..40d8074 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-04-22 Peter Spjuth <peter.spjuth@gmail.com>
+
+ * generic/tkCanvPoly.c: [Bug 3291543] There was a crash if dchars
+ * tests/canvas.test: removed all coordinates of a polygon.
+
2011-04-21 Peter Spjuth <peter.spjuth@gmail.com>
* doc/checkbutton.n: Document all variable options as global.
diff --git a/generic/tkCanvPoly.c b/generic/tkCanvPoly.c
index 1e61367..92375b9 100644
--- a/generic/tkCanvPoly.c
+++ b/generic/tkCanvPoly.c
@@ -1200,6 +1200,7 @@ PolygonDeleteCoords(
polyPtr->numPoints = 0;
if (polyPtr->coordPtr != NULL) {
ckfree((char *) polyPtr->coordPtr);
+ polyPtr->coordPtr = NULL;
}
ComputePolygonBbox(canvas, polyPtr);
return;
diff --git a/tests/canvas.test b/tests/canvas.test
index f6a85fb..e05620b 100644
--- a/tests/canvas.test
+++ b/tests/canvas.test
@@ -405,6 +405,14 @@ test canvas-11.2 {canvas poly overlap fill check, bug 226357} -setup {
.c itemconfig 1 -width 8
lappend result [.c find over 45 50 45 50]; # outside poly
} -result {1 1 {} 1 {} 1 1 {} 1 {} 1}
+test canvas-11.3 {canvas poly dchars, bug 3291543} {
+ # This would crash
+ destroy .c
+ pack [canvas .c]
+ .c create polygon 0 0 0 10 10 0
+ .c dchars 1 2 end
+ .c coords 1
+} {}
test canvas-12.1 {canvas mm obj, patch SF-403327, 102471} -setup {
destroy .c