]> source.dussan.org Git - tigervnc.git/commitdiff
Use operator overloading for comparison
authorPierre Ossman <ossman@cendio.se>
Fri, 6 Jan 2023 14:31:24 +0000 (15:31 +0100)
committerPierre Ossman <ossman@cendio.se>
Sat, 4 Feb 2023 13:03:13 +0000 (14:03 +0100)
It is much more natural than custom methods for this very common
operation.

21 files changed:
common/rfb/CConnection.cxx
common/rfb/ComparingUpdateTracker.cxx
common/rfb/EncodeManager.cxx
common/rfb/H264DecoderContext.h
common/rfb/JpegCompressor.cxx
common/rfb/JpegDecompressor.cxx
common/rfb/PixelBuffer.cxx
common/rfb/PixelFormat.cxx
common/rfb/PixelFormat.h
common/rfb/Rect.h
common/rfb/Region.cxx
common/rfb/Region.h
common/rfb/ScreenSet.h
common/rfb/TightDecoder.cxx
common/rfb/VNCSConnectionST.cxx
common/rfb/VNCServerST.cxx
vncviewer/EmulateMB.cxx
win/rfb_win32/SDisplay.cxx
win/rfb_win32/SInput.cxx
win/rfb_win32/WMCursor.h
win/rfb_win32/WMWindowCopyRect.cxx

index 56429c98dc7d2e9b771ff74c3ba114fdaef00d94..521649ac3f7c873a0e8863b8ed9474b0a8ebce4a 100644 (file)
@@ -740,7 +740,7 @@ void CConnection::setQualityLevel(int level)
 
 void CConnection::setPF(const PixelFormat& pf)
 {
-  if (server.pf().equal(pf) && !formatChange)
+  if (server.pf() == pf && !formatChange)
     return;
 
   nextPF = pf;
index 1bad487eda836f13fbebbb9b23196aeef82a23be..dab5e6aa2652520b337c12c5345a1ee3a91b65cc 100644 (file)
@@ -90,7 +90,7 @@ bool ComparingUpdateTracker::compare()
   for (i = rects.begin(); i != rects.end(); i++)
     missedPixels += i->area();
 
-  if (changed.equals(newChanged))
+  if (changed == newChanged)
     return false;
 
   changed = newChanged;
index cade150654866f2e3fe12b518d9533e2a82ab37f..bc15e74a374711258fa3b6743fe7be14f317d0da 100644 (file)
@@ -697,7 +697,7 @@ void EncodeManager::findSolidRect(const Rect& rect, Region *changed,
         extendSolidAreaByBlock(sr, colourValue, pb, &erb);
 
         // Did we end up getting the entire rectangle?
-        if (erb.equals(rect))
+        if (erb == rect)
           erp = erb;
         else {
           // Don't bother with sending tiny rectangles
@@ -1000,7 +1000,7 @@ PixelBuffer* EncodeManager::preparePixelBuffer(const Rect& rect,
   int stride;
 
   // Do wo need to convert the data?
-  if (convert && !conn->client.pf().equal(pb->getPF())) {
+  if (convert && conn->client.pf() != pb->getPF()) {
     convertedPixelBuffer.setPF(conn->client.pf());
     convertedPixelBuffer.setSize(rect.width(), rect.height());
 
index ccb0bdb3dc25949ef11d084d02a63caf6b2d126c..88c2396c0de5f34aebd1bfb69fc41158afa44498 100644 (file)
@@ -39,7 +39,7 @@ namespace rfb {
                           ModifiablePixelBuffer* /*pb*/) {}
       void reset();
 
-      inline bool isEqualRect(const Rect &r) const { return r.equals(rect); }
+      inline bool isEqualRect(const Rect &r) const { return r == rect; }
       bool isReady();
 
     protected:
index 51d3c357788f08ca6d309017dee783ba6b86735b..d5c5fd0d970fb421cddf1fbe935729a62c961ed3 100644 (file)
@@ -182,13 +182,13 @@ void JpegCompressor::compress(const uint8_t *buf, volatile int stride,
 #ifdef JCS_EXTENSIONS
   // Try to have libjpeg output directly to our native format
   // libjpeg can only handle some "standard" formats
-  if (pfRGBX.equal(pf))
+  if (pfRGBX == pf)
     cinfo->in_color_space = JCS_EXT_RGBX;
-  else if (pfBGRX.equal(pf))
+  else if (pfBGRX == pf)
     cinfo->in_color_space = JCS_EXT_BGRX;
-  else if (pfXRGB.equal(pf))
+  else if (pfXRGB == pf)
     cinfo->in_color_space = JCS_EXT_XRGB;
-  else if (pfXBGR.equal(pf))
+  else if (pfXBGR == pf)
     cinfo->in_color_space = JCS_EXT_XBGR;
 
   if (cinfo->in_color_space != JCS_RGB) {
index 5520a9495825ef2ba23b4d69db01cf7499c65053..44c54fb23e3b083c4a9d27aa59e4fdade383d5fc 100644 (file)
@@ -184,13 +184,13 @@ void JpegDecompressor::decompress(const uint8_t *jpegBuf,
 #ifdef JCS_EXTENSIONS
   // Try to have libjpeg output directly to our native format
   // libjpeg can only handle some "standard" formats
-  if (pfRGBX.equal(pf))
+  if (pfRGBX == pf)
     dinfo->out_color_space = JCS_EXT_RGBX;
-  else if (pfBGRX.equal(pf))
+  else if (pfBGRX == pf)
     dinfo->out_color_space = JCS_EXT_BGRX;
-  else if (pfXRGB.equal(pf))
+  else if (pfXRGB == pf)
     dinfo->out_color_space = JCS_EXT_XRGB;
-  else if (pfXBGR.equal(pf))
+  else if (pfXBGR == pf)
     dinfo->out_color_space = JCS_EXT_XBGR;
 
   if (dinfo->out_color_space != JCS_RGB) {
index 28eea9a764e3f38e092297122760dbbd9eca239a..c8b5f3d7cdcb56dc74456e7e4807fbdca90ec2c9 100644 (file)
@@ -101,7 +101,7 @@ void PixelBuffer::getImage(const PixelFormat& pf, void* imageBuf,
   const uint8_t* srcBuffer;
   int srcStride;
 
-  if (format.equal(pf)) {
+  if (format == pf) {
     getImage(imageBuf, r, stride);
     return;
   }
index b3ea8182a9225f24fb447b2bf1e9594ed3facf7a..b90fc206c1d25b4c7d806a21623851b4d33f24c1 100644 (file)
@@ -99,7 +99,7 @@ PixelFormat::PixelFormat()
   updateState();
 }
 
-bool PixelFormat::equal(const PixelFormat& other) const
+bool PixelFormat::operator==(const PixelFormat& other) const
 {
   if (bpp != other.bpp || depth != other.depth)
     return false;
@@ -148,6 +148,11 @@ bool PixelFormat::equal(const PixelFormat& other) const
   return true;
 }
 
+bool PixelFormat::operator!=(const PixelFormat& other) const
+{
+  return !(*this == other);
+}
+
 void PixelFormat::read(rdr::InStream* is)
 {
   bpp = is->readU8();
@@ -381,7 +386,7 @@ void PixelFormat::bufferFromBuffer(uint8_t* dst, const PixelFormat &srcPF,
                                    const uint8_t* src, int w, int h,
                                    int dstStride, int srcStride) const
 {
-  if (equal(srcPF)) {
+  if (*this == srcPF) {
     // Trivial case
     while (h--) {
       memcpy(dst, src, w * bpp/8);
index b59a7657baf45e4a31a2e3fa67bc3e56f51a2148..ce9b3927b64647ef3ef4e5c2937b572d736bc3b9 100644 (file)
@@ -49,7 +49,8 @@ namespace rfb {
     // Checks if the formats have identical buffer representation.
     // They might still have different pixel representation, endianness
     // or true colour state.
-    bool equal(const PixelFormat& other) const;
+    bool operator==(const PixelFormat& other) const;
+    bool operator!=(const PixelFormat& other) const;
 
     void read(rdr::InStream* is);
     void write(rdr::OutStream* os) const;
index bd9b160ad191c2faf4923f13e9e715b676094e73..b82ed2741ffab5909553b84cd5e748d89aa488f6 100644 (file)
@@ -50,7 +50,8 @@ namespace rfb {
     inline Point negate() const
       __attribute__ ((warn_unused_result))
       {return Point(-x, -y);}
-    inline bool equals(const Point &p) const {return x==p.x && y==p.y;}
+    inline bool operator==(const Point &p) const {return x==p.x && y==p.y;}
+    inline bool operator!=(const Point &p) const {return x!=p.x || y!=p.y;}
     inline Point translate(const Point &p) const
       __attribute__ ((warn_unused_result))
       {return Point(x+p.x, y+p.y);}
@@ -105,7 +106,8 @@ namespace rfb {
     {
       return Rect(tl.translate(p), br.translate(p));
     }
-    inline bool equals(const Rect &r) const {return r.tl.equals(tl) && r.br.equals(br);}
+    inline bool operator==(const Rect &r) const {return r.tl == tl && r.br == br;}
+    inline bool operator!=(const Rect &r) const {return r.tl != tl || r.br != br;}
     inline bool is_empty() const {return (tl.x >= br.x) || (tl.y >= br.y);}
     inline void clear() {tl = Point(); br = Point();}
     inline bool enclosed_by(const Rect &r) const {
index fecc881e6c93ee7d220917d5f8846d9a8af63351..cfdf0ca2a1811d89a0fee614b18aafab36ec3ab4 100644 (file)
@@ -101,10 +101,14 @@ rfb::Region rfb::Region::subtract(const rfb::Region& r) const {
   return ret;
 }
 
-bool rfb::Region::equals(const rfb::Region& r) const {
+bool rfb::Region::operator==(const rfb::Region& r) const {
   return pixman_region_equal(rgn, r.rgn);
 }
 
+bool rfb::Region::operator!=(const rfb::Region& r) const {
+  return !pixman_region_equal(rgn, r.rgn);
+}
+
 int rfb::Region::numRects() const {
   return pixman_region_n_rects(rgn);
 }
index eb16861e9af576609ff61ef0d05f84e5245dffec..38de67ce7f01e53303b0e16c0189c5a48faa66ee 100644 (file)
@@ -60,7 +60,8 @@ namespace rfb {
     Region subtract(const Region& r) const
       __attribute__ ((warn_unused_result));
 
-    bool equals(const Region& b) const;
+    bool operator==(const Region& b) const;
+    bool operator!=(const Region& b) const;
     int numRects() const;
     bool is_empty() const { return numRects() == 0; }
 
index e43055f260fda8876a4e818896d8c67216d2dfbb..fb93e5c2988b87bde96afac748e3d52f593fb0ad 100644 (file)
@@ -44,7 +44,7 @@ namespace rfb {
     inline bool operator==(const Screen& r) const {
       if (id != r.id)
         return false;
-      if (!dimensions.equals(r.dimensions))
+      if (dimensions != r.dimensions)
         return false;
       if (flags != r.flags)
         return false;
index 09c253bd3137bcc16fc50e929a08a81ce935ba10..acc9d5a5dfbe99f1179fabbd0b14a90ddee51b15 100644 (file)
@@ -400,7 +400,7 @@ void TightDecoder::decodeRect(const Rect& r, const void* buffer,
   uint8_t* outbuf;
   int stride;
 
-  if (pb->getPF().equal(pf)) {
+  if (pb->getPF() == pf) {
     // Decode directly into the framebuffer (fast path)
     directDecode = true;
   } else {
index 0400d5106e22808f65c12510d342bab057fae63b..97fa69cbf8dd26ccdca84d2732704c2a57fd7c48 100644 (file)
@@ -403,7 +403,7 @@ bool VNCSConnectionST::needRenderedCursor()
 
   if (!client.supportsLocalCursor())
     return true;
-  if (!server->getCursorPos().equals(pointerEventPos) &&
+  if ((server->getCursorPos() != pointerEventPos) &&
       (time(0) - pointerEventTime) > 0)
     return true;
 
index ca32282e9ddceddc42a302fc15d9116772377eeb..5f5ee34a53eaf41e229b56863340ac99cdbd215a 100644 (file)
@@ -432,7 +432,7 @@ void VNCServerST::setCursor(int width, int height, const Point& newHotspot,
 
 void VNCServerST::setCursorPos(const Point& pos, bool warped)
 {
-  if (!cursorPos.equals(pos)) {
+  if (cursorPos != pos) {
     cursorPos = pos;
     renderedCursorInvalid = true;
     std::list<VNCSConnectionST*>::iterator ci;
index 3cd3fea617d4fb7632b11f8597eba56eb2dc5588..33e685c4eb56f62a7b582b2d3aa1fb614dd2fbf5 100644 (file)
@@ -304,7 +304,7 @@ bool EmulateMB::handleTimeout(rfb::Timer *t)
   // Pointer move events are not sent when waiting for the timeout.
   // However, we can't let the position get out of sync so when
   // the pointer has moved we have to send the latest position here.
-  if (!origPos.equals(lastPos)) {
+  if (origPos != lastPos) {
     buttonMask = createButtonMask(buttonMask);
     sendPointerEvent(lastPos, buttonMask);
   }
index 811b1033dec39f3539887ff4b662a89f0073b04d..612f883bfaaf3a51077ef3a0fdfdbda816bfad75 100644 (file)
@@ -468,8 +468,8 @@ SDisplay::recreatePixelBuffer(bool force) {
   // If nothing has changed & a recreate has not been forced, delete
   // the new device context and return
   if (pb && !force &&
-    newScreenRect.equals(screenRect) &&
-    new_device->getPF().equal(pb->getPF())) {
+    newScreenRect == screenRect &&
+    new_device->getPF() == pb->getPF()) {
     delete new_device;
     return;
   }
index b76060a860cf0f7e4cfff146152902b5fbaacc12..94df6e98ba760ce1255aab70bf1a8fd58e8189de 100644 (file)
@@ -71,7 +71,7 @@ win32::SPointer::pointerEvent(const Point& pos, int buttonmask)
   DWORD flags = MOUSEEVENTF_ABSOLUTE;
 
   // - Has the pointer moved since the last event?
-  if (!last_position.equals(pos))
+  if (last_position != pos)
     flags |= MOUSEEVENTF_MOVE;
 
   // - If the system swaps left and right mouse buttons then we must
index 252cb0561002b51fcda1f6ea336df23c0b3ce50e..f4366583de025ebfddb9f105e4d600513f7121df 100644 (file)
@@ -43,7 +43,7 @@ namespace rfb {
         Info() : cursor(0), visible(false) {}
         bool operator!=(const Info& info) {
           return ((cursor != info.cursor) ||
-            (!position.equals(info.position)) ||
+            (position != info.position) ||
             (visible != info.visible));
         }
       };
index 7655da8441a32af582772ab8c845cc5b24aee03c..4d69d54bc41ac9473c072f0b5f5f4b80df5f4468 100644 (file)
@@ -45,7 +45,7 @@ rfb::win32::WMCopyRect::processEvent() {
     if (IsWindow(window) && IsWindowVisible(window) && GetWindowRect(window, &wrect)) {
       Rect winrect(wrect.left, wrect.top, wrect.right, wrect.bottom);
       if (fg_window == window) {
-        if (!fg_window_rect.tl.equals(winrect.tl)  && ut) {
+        if (fg_window_rect.tl != winrect.tl && ut) {
           // Window has moved - mark both the previous and new position as changed
           // (we can't use add_copied() here because we aren't that properly synced
           // with the actual state of the framebuffer)