added defines MIN/MAX (uppercase) as replacement for min/max (lowercase); started...
authorVictor Kirhenshtein <victor@netxms.org>
Tue, 3 Oct 2017 07:23:30 +0000 (10:23 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Tue, 3 Oct 2017 07:23:30 +0000 (10:23 +0300)
include/nms_common.h
include/nms_util.h
src/libnetxms/bytestream.cpp
src/libnetxms/config.cpp
src/libnetxms/crypto.cpp
src/libnetxms/diff.cpp
src/libnetxms/geolocation.cpp
src/libnetxms/icmp.cpp
src/libnetxms/icmp6.cpp
src/libnetxms/message.cpp

index 643e058..f6b55bd 100644 (file)
@@ -1127,6 +1127,12 @@ inline void nx_free(void *p)
 #ifndef max
 #define max(a, b) ((a) > (b) ? (a) : (b))
 #endif
+#ifndef MIN
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
+#ifndef MAX
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
 
 /**
  * Define _tcsicmp() for non-windows
@@ -1187,6 +1193,8 @@ inline void nx_free(void *p)
 
 #ifdef __cplusplus
 
+#include <algorithm>
+
 /**
  * Session enumeration callback return codes
  */
index dec408e..666dfa8 100644 (file)
@@ -1616,7 +1616,7 @@ private:
 
 public:
    MacAddress() { m_length = 0; memset(m_value, 0, 16); }
-   MacAddress(const BYTE *value, size_t length) { m_length = min(length, 16); memcpy(m_value, value, m_length); }
+   MacAddress(const BYTE *value, size_t length) { m_length = MIN(length, 16); memcpy(m_value, value, m_length); }
    MacAddress(const MacAddress& src) { memcpy(m_value, src.m_value, src.m_length); m_length = src.m_length; }
 
    static MacAddress parse(const char *str);
index 328d059..964f548 100644 (file)
@@ -62,7 +62,7 @@ void ByteStream::write(const void *data, size_t size)
 {
    if (m_pos + size > m_allocated)
    {
-      m_allocated += max(size, m_allocationStep);
+      m_allocated += std::max(size, m_allocationStep);
       m_data = (BYTE *)realloc(m_data, m_allocated);
    }
    memcpy(&m_data[m_pos], data, size);
@@ -98,7 +98,7 @@ void ByteStream::writeString(const TCHAR *s)
  */
 size_t ByteStream::read(void *buffer, size_t count)
 {
-   size_t c = min(count, m_size - m_pos);
+   size_t c = std::min(count, m_size - m_pos);
    if (c > 0)
    {
       memcpy(buffer, &m_data[m_pos], c);
index 01077e4..29251c2 100644 (file)
@@ -1002,7 +1002,7 @@ ConfigEntry *Config::getEntry(const TCHAR *path)
       end = _tcschr(curr, _T('/'));
       if (end != NULL)
       {
-         int len = min((int )(end - curr), 255);
+         int len = std::min((int)(end - curr), 255);
          _tcsncpy(name, curr, len);
          name[len] = 0;
          entry = entry->findEntry(name);
@@ -1039,7 +1039,7 @@ ConfigEntry *Config::createEntry(const TCHAR *path)
       end = _tcschr(curr, _T('/'));
       if (end != NULL)
       {
-         int len = min((int )(end - curr), 255);
+         int len = std::min((int)(end - curr), 255);
          _tcsncpy(name, curr, len);
          name[len] = 0;
          entry = parent->findEntry(name);
index 405c72b..bed222c 100644 (file)
@@ -609,7 +609,7 @@ NXCPEncryptionContext *NXCPEncryptionContext::create(NXCPMessage *msg, RSA *priv
 #ifdef _WITH_ENCRYPTION
    BYTE ucKeyBuffer[KEY_BUFFER_SIZE], ucSessionKey[KEY_BUFFER_SIZE];
    UINT32 dwKeySize;
-   int nSize, nIVLen;
+   int nSize;
        NXCPEncryptionContext *ctx = new NXCPEncryptionContext;
 
    int cipher = (int)msg->getFieldAsUInt16(VID_CIPHER);
@@ -627,7 +627,7 @@ NXCPEncryptionContext *NXCPEncryptionContext::create(NXCPMessage *msg, RSA *priv
             memcpy(ctx->m_sessionKey, ucSessionKey, nSize);
 
             // Decrypt session IV
-            nIVLen = msg->getFieldAsUInt16(VID_IV_LENGTH);
+            int nIVLen = msg->getFieldAsUInt16(VID_IV_LENGTH);
             if (nIVLen == 0)  // Versions prior to 0.2.13 don't send IV length, assume 16
                nIVLen = 16;
             dwKeySize = msg->getFieldAsBinary(VID_SESSION_IV, ucKeyBuffer, KEY_BUFFER_SIZE);
@@ -635,7 +635,7 @@ NXCPEncryptionContext *NXCPEncryptionContext::create(NXCPMessage *msg, RSA *priv
             if ((nSize == nIVLen) &&
                 (nIVLen <= EVP_CIPHER_iv_length(s_ciphers[ctx->m_cipher]())))
             {
-               memcpy(ctx->m_iv, ucSessionKey, min(EVP_MAX_IV_LENGTH, nIVLen));
+               memcpy(ctx->m_iv, ucSessionKey, std::min(EVP_MAX_IV_LENGTH, nIVLen));
             }
             else
             {
index 48e67b6..6a6c9d7 100644 (file)
@@ -573,7 +573,7 @@ void DiffEngine::diff_charsToLines(ObjectArray<Diff> *diffs, const StringList &l
 int DiffEngine::diff_commonPrefix(const String &text1, const String &text2)
 {
    // Performance analysis: http://neil.fraser.name/news/2007/10/09/
-   const int n = (int)min(text1.length(), text2.length());
+   const int n = (int)std::min(text1.length(), text2.length());
    for(int i = 0; i < n; i++)
    {
       if (text1.charAt(i) != text2.charAt(i))
@@ -589,7 +589,7 @@ int DiffEngine::diff_commonSuffix(const String &text1, const String &text2)
    // Performance analysis: http://neil.fraser.name/news/2007/10/09/
    const int text1_length = (int)text1.length();
    const int text2_length = (int)text2.length();
-   const int n = min(text1_length, text2_length);
+   const int n = std::min(text1_length, text2_length);
    for(int i = 1; i <= n; i++)
    {
       if (text1.charAt(text1_length - i) != text2.charAt(text2_length - i))
@@ -621,7 +621,7 @@ size_t DiffEngine::diff_commonOverlap(const String &text1, const String &text2)
    {
       text2_trunc = text2.left(text1_length);
    }
-   const size_t text_length = min(text1_length, text2_length);
+   const size_t text_length = std::min(text1_length, text2_length);
    // Quick check for the worst case.
    if (text1_trunc == text2_trunc)
    {
@@ -799,8 +799,8 @@ void DiffEngine::diff_cleanupSemantic(ObjectArray<Diff> &diffs)
          }
          // Eliminate an equality that is smaller or equal to the edits on both
          // sides of it.
-         if (!lastequality.isEmpty() && ((int)lastequality.length() <= max(length_insertions1, length_deletions1))
-                  && ((int)lastequality.length() <= max(length_insertions2, length_deletions2)))
+         if (!lastequality.isEmpty() && ((int)lastequality.length() <= std::max(length_insertions1, length_deletions1))
+                  && ((int)lastequality.length() <= std::max(length_insertions2, length_deletions2)))
          {
             // printf("Splitting: '%s'\n", qPrintable(lastequality));
             // Walk back to offending equality.
@@ -1478,13 +1478,13 @@ int DiffEngine::diff_levenshtein(const ObjectArray<Diff> &diffs)
          break;
          case DIFF_EQUAL:
          // A deletion and an insertion is one substitution.
-         levenshtein += max(insertions, deletions);
+         levenshtein += std::max(insertions, deletions);
          insertions = 0;
          deletions = 0;
          break;
       }
    }
-   levenshtein += max(insertions, deletions);
+   levenshtein += std::max(insertions, deletions);
    return levenshtein;
 }
 
index 55d5546..c0d103a 100644 (file)
@@ -387,7 +387,7 @@ bool GeoLocation::sameLocation(double lat, double lon, int oldAccuracy) const
    double c = 2 * atan2(sqrt(a), sqrt(1 - a));
 
    double distance = R * c;
-   return distance <= min(oldAccuracy, m_accuracy);
+   return distance <= std::min(oldAccuracy, m_accuracy);
 }
 
 /**
index 77939eb..1e6bf92 100644 (file)
@@ -216,7 +216,7 @@ static UINT32 WaitForReply(int sock, UINT32 addr, UINT16 sequence, UINT32 dwTime
       if (sp.poll(dwTimeLeft) > 0)
                {
                        dwElapsedTime = (UINT32)(GetCurrentTimeMs() - qwStartTime);
-                       dwTimeLeft -= min(dwElapsedTime, dwTimeLeft);
+                       dwTimeLeft -= std::min(dwElapsedTime, dwTimeLeft);
                        rtt += dwElapsedTime;
 
                        // Receive reply
@@ -292,7 +292,7 @@ static UINT32 LIBNETXMS_EXPORTABLE IcmpPing4(UINT32 addr, int retries, UINT32 ti
    request.m_icmpHdr.m_cCode = 0;
    request.m_icmpHdr.m_wId = ICMP_REQUEST_ID;
    request.m_icmpHdr.m_wSeq = 0;
-   memcpy(request.m_cData, szPayload, min(packetSize - sizeof(ICMPHDR) - sizeof(IPHDR), 64));
+   memcpy(request.m_cData, szPayload, MIN(packetSize - sizeof(ICMPHDR) - sizeof(IPHDR), 64));
 
    UINT32 result = ICMP_TIMEOUT;
 
index 77ff88a..41bde18 100644 (file)
@@ -184,7 +184,7 @@ static UINT32 WaitForReply(int sock, struct sockaddr_in6 *addr, UINT32 id, UINT3
       if (sp.poll(dwTimeLeft) > 0)
       {
          dwElapsedTime = (UINT32)(GetCurrentTimeMs() - qwStartTime);
-         dwTimeLeft -= min(dwElapsedTime, dwTimeLeft);
+         dwTimeLeft -= std::min(dwElapsedTime, dwTimeLeft);
          rtt += dwElapsedTime;
 
          // Receive reply
@@ -240,7 +240,7 @@ UINT32 IcmpPing6(const InetAddress &addr, int retries, UINT32 timeout, UINT32 *r
 
    // Prepare packet and calculate checksum
    static char payload[64] = "NetXMS ICMPv6 probe [01234567890]";
-   int size = max(sizeof(PACKET_HEADER), min((int)packetSize, MAX_PACKET_SIZE));
+   size_t size = MAX(sizeof(PACKET_HEADER), MIN(packetSize, MAX_PACKET_SIZE));
 #if HAVE_ALLOCA
    PACKET_HEADER *p = (PACKET_HEADER *)alloca(size);
 #else
@@ -252,7 +252,7 @@ UINT32 IcmpPing6(const InetAddress &addr, int retries, UINT32 timeout, UINT32 *r
    p->nextHeader = 58;
    p->type = 128;  // ICMPv6 Echo Request
    p->id = getpid();
-   memcpy(p->data, payload, min(33, size - sizeof(PACKET_HEADER) + 8));
+   memcpy(p->data, payload, MIN(33, size - sizeof(PACKET_HEADER) + 8));
 
    // Send packets
    int bytes = size - 40;  // excluding IPv6 header
index 7fdf0fc..1ed879b 100644 (file)
@@ -636,7 +636,9 @@ TCHAR *NXCPMessage::getFieldAsString(UINT32 fieldId, TCHAR *buffer, size_t buffe
          str = buffer;
       }
 
-      size_t length = (buffer == NULL) ? (*((UINT32 *)value) / 2) : min(*((UINT32 *)value) / 2, bufferSize - 1);
+      size_t length = (buffer == NULL) ? 
+            static_cast<size_t>(*((UINT32 *)value) / 2) : 
+            std::min(static_cast<size_t>(*((UINT32 *)value) / 2), bufferSize - 1);
 #if defined(UNICODE) && defined(UNICODE_UCS4)
                ucs2_to_ucs4((UCS2CHAR *)((BYTE *)value + 4), length, str, length + 1);
 #elif defined(UNICODE) && defined(UNICODE_UCS2)
@@ -680,8 +682,10 @@ char *NXCPMessage::getFieldAsMBString(UINT32 fieldId, char *buffer, size_t buffe
          str = buffer;
       }
 
-      size_t length = (buffer == NULL) ? (*((UINT32 *)value) / 2) : min(*((UINT32 *)value) / 2, bufferSize - 1);
-               ucs2_to_mb((UCS2CHAR *)((BYTE *)value + 4), (int)length, str, (int)length + 1);
+      size_t length = (buffer == NULL) ? 
+            static_cast<size_t>(*((UINT32 *)value) / 2) : 
+            std::min(static_cast<size_t>(*((UINT32 *)value) / 2), bufferSize - 1);
+      ucs2_to_mb((UCS2CHAR *)((BYTE *)value + 4), (int)length, str, (int)length + 1);
       str[length] = 0;
    }
    else