head 1.1; access; symbols pkgsrc-2023Q4:1.1.0.160 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.158 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.156 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.154 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.152 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.150 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.148 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.146 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.144 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.142 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.140 pkgsrc-2021Q2-base:1.1 pkgsrc-2021Q1:1.1.0.138 pkgsrc-2021Q1-base:1.1 pkgsrc-2020Q4:1.1.0.136 pkgsrc-2020Q4-base:1.1 pkgsrc-2020Q3:1.1.0.134 pkgsrc-2020Q3-base:1.1 pkgsrc-2020Q2:1.1.0.130 pkgsrc-2020Q2-base:1.1 pkgsrc-2020Q1:1.1.0.110 pkgsrc-2020Q1-base:1.1 pkgsrc-2019Q4:1.1.0.132 pkgsrc-2019Q4-base:1.1 pkgsrc-2019Q3:1.1.0.128 pkgsrc-2019Q3-base:1.1 pkgsrc-2019Q2:1.1.0.126 pkgsrc-2019Q2-base:1.1 pkgsrc-2019Q1:1.1.0.124 pkgsrc-2019Q1-base:1.1 pkgsrc-2018Q4:1.1.0.122 pkgsrc-2018Q4-base:1.1 pkgsrc-2018Q3:1.1.0.120 pkgsrc-2018Q3-base:1.1 pkgsrc-2018Q2:1.1.0.118 pkgsrc-2018Q2-base:1.1 pkgsrc-2018Q1:1.1.0.116 pkgsrc-2018Q1-base:1.1 pkgsrc-2017Q4:1.1.0.114 pkgsrc-2017Q4-base:1.1 pkgsrc-2017Q3:1.1.0.112 pkgsrc-2017Q3-base:1.1 pkgsrc-2017Q2:1.1.0.108 pkgsrc-2017Q2-base:1.1 pkgsrc-2017Q1:1.1.0.106 pkgsrc-2017Q1-base:1.1 pkgsrc-2016Q4:1.1.0.104 pkgsrc-2016Q4-base:1.1 pkgsrc-2016Q3:1.1.0.102 pkgsrc-2016Q3-base:1.1 pkgsrc-2016Q2:1.1.0.100 pkgsrc-2016Q2-base:1.1 pkgsrc-2016Q1:1.1.0.98 pkgsrc-2016Q1-base:1.1 pkgsrc-2015Q4:1.1.0.96 pkgsrc-2015Q4-base:1.1 pkgsrc-2015Q3:1.1.0.94 pkgsrc-2015Q3-base:1.1 pkgsrc-2015Q2:1.1.0.92 pkgsrc-2015Q2-base:1.1 pkgsrc-2015Q1:1.1.0.90 pkgsrc-2015Q1-base:1.1 pkgsrc-2014Q4:1.1.0.88 pkgsrc-2014Q4-base:1.1 pkgsrc-2014Q3:1.1.0.86 pkgsrc-2014Q3-base:1.1 pkgsrc-2014Q2:1.1.0.84 pkgsrc-2014Q2-base:1.1 pkgsrc-2014Q1:1.1.0.82 pkgsrc-2014Q1-base:1.1 pkgsrc-2013Q4:1.1.0.80 pkgsrc-2013Q4-base:1.1 pkgsrc-2013Q3:1.1.0.78 pkgsrc-2013Q3-base:1.1 pkgsrc-2013Q2:1.1.0.76 pkgsrc-2013Q2-base:1.1 pkgsrc-2013Q1:1.1.0.74 pkgsrc-2013Q1-base:1.1 pkgsrc-2012Q4:1.1.0.72 pkgsrc-2012Q4-base:1.1 pkgsrc-2012Q3:1.1.0.70 pkgsrc-2012Q3-base:1.1 pkgsrc-2012Q2:1.1.0.68 pkgsrc-2012Q2-base:1.1 pkgsrc-2012Q1:1.1.0.66 pkgsrc-2012Q1-base:1.1 pkgsrc-2011Q4:1.1.0.64 pkgsrc-2011Q4-base:1.1 pkgsrc-2011Q3:1.1.0.62 pkgsrc-2011Q3-base:1.1 pkgsrc-2011Q2:1.1.0.60 pkgsrc-2011Q2-base:1.1 pkgsrc-2011Q1:1.1.0.58 pkgsrc-2011Q1-base:1.1 pkgsrc-2010Q4:1.1.0.56 pkgsrc-2010Q4-base:1.1 pkgsrc-2010Q3:1.1.0.54 pkgsrc-2010Q3-base:1.1 pkgsrc-2010Q2:1.1.0.52 pkgsrc-2010Q2-base:1.1 pkgsrc-2010Q1:1.1.0.50 pkgsrc-2010Q1-base:1.1 pkgsrc-2009Q4:1.1.0.48 pkgsrc-2009Q4-base:1.1 pkgsrc-2009Q3:1.1.0.46 pkgsrc-2009Q3-base:1.1 pkgsrc-2009Q2:1.1.0.44 pkgsrc-2009Q2-base:1.1 pkgsrc-2009Q1:1.1.0.42 pkgsrc-2009Q1-base:1.1 pkgsrc-2008Q4:1.1.0.40 pkgsrc-2008Q4-base:1.1 pkgsrc-2008Q3:1.1.0.38 pkgsrc-2008Q3-base:1.1 cube-native-xorg:1.1.0.36 cube-native-xorg-base:1.1 pkgsrc-2008Q2:1.1.0.34 pkgsrc-2008Q2-base:1.1 cwrapper:1.1.0.32 pkgsrc-2008Q1:1.1.0.30 pkgsrc-2008Q1-base:1.1 pkgsrc-2007Q4:1.1.0.28 pkgsrc-2007Q4-base:1.1 pkgsrc-2007Q3:1.1.0.26 pkgsrc-2007Q3-base:1.1 pkgsrc-2007Q2:1.1.0.24 pkgsrc-2007Q2-base:1.1 pkgsrc-2007Q1:1.1.0.22 pkgsrc-2007Q1-base:1.1 pkgsrc-2006Q4:1.1.0.20 pkgsrc-2006Q4-base:1.1 pkgsrc-2006Q3:1.1.0.18 pkgsrc-2006Q3-base:1.1 pkgsrc-2006Q2:1.1.0.16 pkgsrc-2006Q2-base:1.1 pkgsrc-2006Q1:1.1.0.14 pkgsrc-2006Q1-base:1.1 pkgsrc-2005Q4:1.1.0.12 pkgsrc-2005Q4-base:1.1 pkgsrc-2005Q3:1.1.0.10 pkgsrc-2005Q3-base:1.1 pkgsrc-2005Q2:1.1.0.8 pkgsrc-2005Q2-base:1.1 pkgsrc-2005Q1:1.1.0.6 pkgsrc-2005Q1-base:1.1 pkgsrc-2004Q4:1.1.0.4 pkgsrc-2004Q4-base:1.1 pkgsrc-2004Q3:1.1.0.2 pkgsrc-2004Q3-base:1.1; locks; strict; comment @# @; 1.1 date 2004.08.16.12.36.38; author dsainty; state Exp; branches; next ; desc @@ 1.1 log @Building POSE under gcc 3.3.3 with optimisation as default (g++ -O2) leads to a malfunction where POSE will go into an apparent infinite loop after the first pen operation. This patch codes around the problem. @ text @$NetBSD$ Building POSE under gcc 3.3.3 with optimisation as default (g++ -O2) leads to a malfunction where POSE will go into an apparent infinite loop after the first pen operation. This appears to be due to pointer coordinate corruption, fixed by the patch below. The only user of the patched type coercion is SrcShared/Patches/EmPatchMgr.cpp, which says: PointType palmPen = pen; I haven't entirely traced this through, but I suspect that the palmPen coordinates are corrupted on the "pen up" event, leading the hosted Palm OS to believe the stylus is being perpetually dragged around the screen. The issue appears to be resolved by the below patch, which is a somewhat less dodgy (but only just!) implementation, and appears to be enough to convince the compiler to keep the target class uncorrupted. Another option is: EmPatchMgr.cpp: PointType palmPen = { pen.fX, pen.fY }; --- SrcShared/EmPoint.cpp.orig 2002-03-30 01:11:14.000000000 +1200 +++ SrcShared/EmPoint.cpp 2004-08-16 00:11:31.000000000 +1200 @@@@ -233,7 +233,7 @@@@ #undef FOR_POINT #define FOR_POINT(cls, size, x, y) \ EmPoint::operator cls() const \ - { size pt[2]; pt[x] = fX; pt[y] = fY; return *(cls*) pt; } + { union { size pt[2]; cls bar; } foo; foo.pt[x] = fX; foo.pt[y] = fY; return foo.bar; } POINT_LIST_XY_LONG POINT_LIST_YX_LONG @