tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Common.h (1379B)


      1 // Common.h
      2 
      3 #ifndef __COMMON_COMMON_H
      4 #define __COMMON_COMMON_H
      5 
      6 /*
      7 This file is included to all cpp files in 7-Zip.
      8 Each folder contains StdAfx.h file that includes "Common.h".
      9 So 7-Zip includes "Common.h" in both modes:
     10  with precompiled StdAfx.h
     11 and
     12  without precompiled StdAfx.h
     13 
     14 If you use 7-Zip code, you must include "Common.h" before other h files of 7-zip.
     15 If you don't need some things that are used in 7-Zip,
     16 you can change this h file or h files included in this file.
     17 */
     18 
     19 // compiler pragmas to disable some warnings
     20 #include "../../C/Compiler.h"
     21 
     22 // it's <windows.h> or code that defines windows things, if it's not _WIN32
     23 #include "MyWindows.h"
     24 
     25 // NewHandler.h and NewHandler.cpp redefine operator new() to throw exceptions, if compiled with old MSVC compilers
     26 #include "NewHandler.h"
     27 
     28 
     29 
     30 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
     31 
     32 
     33 /* There is BUG in MSVC 6.0 compiler for operator new[]:
     34   It doesn't check overflow, when it calculates size in bytes for allocated array.
     35   So we can use MY_ARRAY_NEW macro instead of new[] operator. */
     36 
     37 #if defined(_MSC_VER) && (_MSC_VER == 1200) && !defined(_WIN64)
     38  #define MY_ARRAY_NEW(p, T, size) p = new T[(size > (unsigned)0xFFFFFFFF / sizeof(T)) ? (unsigned)0xFFFFFFFF / sizeof(T) : size];
     39 #else
     40  #define MY_ARRAY_NEW(p, T, size) p = new T[size];
     41 #endif
     42 
     43 #endif