diff --git a/uppsrc/Core/Other.h b/uppsrc/Core/Other.h index 2b07dbc8f..fd60b1c38 100644 --- a/uppsrc/Core/Other.h +++ b/uppsrc/Core/Other.h @@ -129,8 +129,8 @@ class Bits : Moveable { public: void Clear(); - void Set(int i, bool b = true) { ASSERT(i >= 0 && alloc >= 0); int q = i >> 5; - if(q >= alloc) Expand(q); i &= 31; bp[q] = (bp[q] & ~(1 << i)) | (b << i); } + void Set(int i, bool b = true) { ASSERT(i >= 0 && alloc >= 0); int q = i >> 5; if(q >= alloc) Expand(q); + i &= 31; bp[q] = (bp[q] & ~(1 << i)) | (b << i); } bool Get(int i) const { ASSERT(i >= 0 && alloc >= 0); int q = i >> 5; return q < alloc ? bp[q] & (1 << (i & 31)) : false; } bool operator[](int i) const { return Get(i); } diff --git a/uppsrc/Core/Vcont.hpp b/uppsrc/Core/Vcont.hpp index b568f6cac..287bb3af5 100644 --- a/uppsrc/Core/Vcont.hpp +++ b/uppsrc/Core/Vcont.hpp @@ -229,7 +229,7 @@ void Vector::Remove(int q, int count) { ASSERT(q >= 0 && q <= items - count && count >= 0); if(count == 0) return; Destroy(vector + q, vector + q + count); - memmove(vector + q, vector + q + count, (items - q - count) * sizeof(T)); + memmove((void *)(vector + q), (void *)(vector + q + count), (items - q - count) * sizeof(T)); items -= count; } @@ -272,14 +272,14 @@ void Vector::RawInsert(int q, int count) if(items + count > alloc) { T *newvector = RawAlloc(alloc = max(alloc + count, int(alloc + ((unsigned)alloc >> 1)))); if(vector) { - memcpy(newvector, vector, q * sizeof(T)); - memcpy(newvector + q + count, vector + q, (items - q) * sizeof(T)); + memcpy((void *)newvector, (void *)vector, q * sizeof(T)); + memcpy((void *)(newvector + q + count), (void *)(vector + q), (items - q) * sizeof(T)); RawFree(vector); } vector = newvector; } else - memmove(vector + q + count, vector + q, (items - q) * sizeof(T)); + memmove((void *)(vector + q + count), (void *)(vector + q), (items - q) * sizeof(T)); items += count; } @@ -346,7 +346,7 @@ void Vector::Insert(int i, Vector&& v) { ASSERT(!vector || v.vector != vector); if(v.items) { RawInsert(i, v.items); - memcpy(vector + i, v.vector, sizeof(T) * v.items); + memcpy((void *)(vector + i), (void *)v.vector, sizeof(T) * v.items); } RawFree(v.vector); v.Zero(); @@ -359,7 +359,7 @@ void Vector::InsertSplit(int i, Vector& v, int from) int n = v.GetCount() - from; if(n) { RawInsert(i, n); - memcpy(vector + i, v.vector + from, sizeof(T) * n); + memcpy((void *)(vector + i), (void *)(v.vector + from), sizeof(T) * n); v.items = from; } } @@ -627,10 +627,10 @@ void BiVector::ReAlloc(int newalloc) { if(items) { int end = start + items; if(end <= alloc) - memcpy(newvector, vector + start, (end - start) * sizeof(T)); + memcpy((void *)newvector, (void *)(vector + start), (end - start) * sizeof(T)); else { - memcpy(newvector, vector + start, (alloc - start) * sizeof(T)); - memcpy(newvector + alloc - start, vector, (end - alloc) * sizeof(T)); + memcpy((void *)newvector, (void *)(vector + start), (alloc - start) * sizeof(T)); + memcpy((void *)(newvector + alloc - start), (void *)vector, (end - alloc) * sizeof(T)); } delete[] (byte *)vector; } diff --git a/uppsrc/Core/sheap.cpp b/uppsrc/Core/sheap.cpp index cb5ee6f42..d38ca7720 100644 --- a/uppsrc/Core/sheap.cpp +++ b/uppsrc/Core/sheap.cpp @@ -110,7 +110,7 @@ void *Heap::AllocK(int k) } } -inline +force_inline void *Heap::Allok(int k) { // Try to alloc from the front-cache first FreeLink *ptr = cache[k]; diff --git a/uppsrc/Draw/Uhd.cpp b/uppsrc/Draw/Uhd.cpp index 5284d7f0e..b5d785158 100644 --- a/uppsrc/Draw/Uhd.cpp +++ b/uppsrc/Draw/Uhd.cpp @@ -89,7 +89,7 @@ Image Upscale2x(const Image& src) int b = mx[1][2].a; int l1 = 110; int l2 = 230; - return l * r * t * b || s.a > l1 || mx[0][1].a > l2 || mx[2][1].a > l2 || mx[1][0].a > l2 || mx[1][2].a > l2 ? s + return l * r * t * b != 0 || s.a > l1 || mx[0][1].a > l2 || mx[2][1].a > l2 || mx[1][0].a > l2 || mx[1][2].a > l2 ? s : RGBAZero(); } } ef; diff --git a/uppsrc/RichText/EncodeHTML.cpp b/uppsrc/RichText/EncodeHTML.cpp index ec3ba6112..f18eabf7f 100644 --- a/uppsrc/RichText/EncodeHTML.cpp +++ b/uppsrc/RichText/EncodeHTML.cpp @@ -349,10 +349,10 @@ String DefaultHtmlObjectSaver::GetHtml(const RichObject& object) sz = psz; PNGEncoder png; png.SaveFile(AppendFileName(outdir, name), object.ToImage(sz)); - if(psz.cx * psz.cy) + if(psz.cx * psz.cy != 0) html << ""; html << "\"\""; - if(psz.cx * psz.cy) { + if(psz.cx * psz.cy != 0) { html << ""; PNGEncoder png; png.SaveFile(AppendFileName(outdir, lname), object.ToImage(psz)); diff --git a/uppsrc/ide/Help.cpp b/uppsrc/ide/Help.cpp index 5d2a036d0..407c29fb0 100644 --- a/uppsrc/ide/Help.cpp +++ b/uppsrc/ide/Help.cpp @@ -380,6 +380,7 @@ struct SlideShow : TopWindow { Vector path; int page; int rp; + int zoom = 4; void SetPage(); @@ -391,25 +392,32 @@ bool SlideShow::Key(dword key, int count) switch(key) { case K_ESCAPE: Break(); - break; + return true; case K_LEFT: - case K_UP: case K_PAGEUP: + case K_SPACE: page--; - SetPage(); break; case K_RIGHT: - case K_DOWN: case K_PAGEDOWN: page++; - SetPage(); break; + case K_CTRL|K_ADD: + zoom = min(zoom + 1, 20); + break; + case K_CTRL|K_SUBTRACT: + zoom = min(zoom - 1, 20); + break; + default: + return true; } + SetPage(); return true; } void SlideShow::SetPage() { + text.SetZoom(Zoom(DPI(zoom), 20)); page = minmax(page, 0, path.GetCount() - 1); if(page != rp) { rp = page; @@ -424,7 +432,6 @@ SlideShow::SlideShow() text.NoHyperlinkDecoration(); text.NoSb(); text.VCenter(); - text.SetZoom(Zoom(1, 5)); text.Margins(8); rp = -1; } diff --git a/uppsrc/ide/icon.ico b/uppsrc/ide/icon.ico index 263d620ac..9d413d1f6 100644 Binary files a/uppsrc/ide/icon.ico and b/uppsrc/ide/icon.ico differ