diff --git a/mathgl-fix-overflow.patch b/mathgl-fix-overflow.patch new file mode 100644 index 0000000..0d4176f --- /dev/null +++ b/mathgl-fix-overflow.patch @@ -0,0 +1,40 @@ +diff -r 9ad9a88a8e91 include/mgl2/base.h +--- include/mgl2/base.h Sun Apr 14 22:38:31 2013 +0100 ++++ include/mgl2/base.h Sun Apr 14 22:42:46 2013 +0100 +@@ -161,11 +161,14 @@ + { Create(a.nt, a.nl); memcpy(trig, a.trig, 6*nt*sizeof(short)); + memcpy(line, a.line, 2*nl*sizeof(short)); return *this; } + }; ++ ++const int MGL_TEXTURE_COLOURS=512; ++ + //----------------------------------------------------------------------------- + /// Structure for texture (color scheme + palette) representation + struct MGL_EXPORT mglTexture + { +- mglColor col[512]; ///< Colors itself ++ mglColor col[MGL_TEXTURE_COLOURS]; ///< Colors itself + long n; ///< Number of initial colors along u + + char Sch[260]; ///< Color scheme used +@@ -179,6 +182,7 @@ + void Set(const char *cols, int smooth=0,mreal alpha=1); + void Set(HCDT val, const char *cols); + void GetC(mreal u,mreal v,mglPnt &p) const; ++ size_t GetNumColours() { return MGL_TEXTURE_COLOURS;} + mglColor GetC(mreal u,mreal v=0) const; + inline bool IsSame(const mglTexture &t) const + { return n==t.n && !memcmp(col,t.col,512*sizeof(mglColor)); } +diff -r 9ad9a88a8e91 src/base.cpp +--- src/base.cpp Sun Apr 14 22:38:31 2013 +0100 ++++ src/base.cpp Sun Apr 14 22:42:46 2013 +0100 +@@ -882,7 +882,8 @@ + return i+j/255.; + // add new texture + mglTexture t; +- for(i=0;i<514;i++) t.col[i]=c; ++ size_t maxColours=t.GetNumColours(); ++ for(i=0;i