]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/dynarray.cpp
don't crash if conversion of a command line argument to Unicode fails
[wxWidgets.git] / src / common / dynarray.cpp
index 738e9813a39a140945104945b8d424fd221c7872..4fc0f8ce40d65314f62adfac9c873517039ce452 100644 (file)
 // headers
 // ============================================================================
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "dynarray.h"
-#endif
-
 #include  "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 #include <stdlib.h>
 #include <string.h> // for memmove
 
-#ifndef max
-  #define max(a, b)   (((a) > (b)) ? (a) : (b))
-#endif
-
 // we cast the value to long from which we cast it to void * in IndexForInsert:
 // this can't work if the pointers are not big enough
 wxCOMPILE_TIME_ASSERT( sizeof(wxUIntPtr) <= sizeof(void *),
@@ -99,8 +91,8 @@ int name::Index(T lItem, CMPFUNC fnCompare) const                           \
 {                                                                           \
     Predicate p((SCMPFUNC)fnCompare);                                       \
     const_iterator it = std::lower_bound(begin(), end(), lItem, p);         \
-    return (it != end() &&                                                  \
-            p(lItem, *it)) ? (int)(it - begin()) : wxNOT_FOUND;             \
+    return (it != end() && !p(lItem, *it)) ?                                \
+                             (int)(it - begin()) : wxNOT_FOUND;             \
 }                                                                           \
                                                                             \
 void name::Shrink()                                                         \
@@ -418,6 +410,12 @@ void name::insert(iterator it, const_iterator first, const_iterator last)   \
         _WX_DEFINE_BASEARRAY_COMMON(T, name)                                \
         _WX_DEFINE_BASEARRAY_NOCOMMON(T, name)
 
+#ifdef __INTELC__
+    #pragma warning(push)
+    #pragma warning(disable: 1684)
+    #pragma warning(disable: 1572)
+#endif
+
 _WX_DEFINE_BASEARRAY(const void *, wxBaseArrayPtrVoid)
 _WX_DEFINE_BASEARRAY(short,        wxBaseArrayShort)
 _WX_DEFINE_BASEARRAY(int,          wxBaseArrayInt)
@@ -425,6 +423,10 @@ _WX_DEFINE_BASEARRAY(long,         wxBaseArrayLong)
 _WX_DEFINE_BASEARRAY(size_t,       wxBaseArraySizeT)
 _WX_DEFINE_BASEARRAY(double,       wxBaseArrayDouble)
 
+#ifdef __INTELC__
+    #pragma warning(pop)
+#endif
+
 #if wxUSE_STL
 #include "wx/arrstr.h"
 
@@ -432,7 +434,7 @@ _WX_DEFINE_BASEARRAY(double,       wxBaseArrayDouble)
 #include <functional>
 #include "wx/afterstd.h"
 
-_WX_DEFINE_BASEARRAY(wxString, wxBaseArrayStringBase);
+_WX_DEFINE_BASEARRAY(wxString, wxBaseArrayStringBase)
 
 // some compilers (Sun CC being the only known example) distinguish between
 // extern "C" functions and the functions with C++ linkage and ptr_fun and