Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(451)

Unified Diff: base/basictypes.h

Issue 117323010: Redefine (u)int{8,16,32} as (u)int{8,16,32}_t. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: delete fixme Created 6 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/basictypes.h
diff --git a/base/basictypes.h b/base/basictypes.h
index dbc55c8d54a0a0c815799413dbc8836f496ae2d3..b67d17ddfa6fa9d466f44e28a9e90db6b1fd148e 100644
--- a/base/basictypes.h
+++ b/base/basictypes.h
@@ -13,46 +13,33 @@
#include "base/compiler_specific.h"
#include "base/port.h" // Types that only need exist on certain systems.
-typedef signed char schar;
-typedef signed char int8;
-typedef short int16;
-typedef int int32;
+// TODO(vtl): We get conflicts with other definitions of |int8|/|uint8| if we
+// try to define them as |int8_t|/|uint8_t|, at least on Windows.
+#ifdef _MSC_VER
+typedef signed char int8;
+typedef unsigned char uint8;
+#else
+typedef int8_t int8;
+typedef uint8_t uint8;
+#endif
+
+typedef int16_t int16;
+typedef int32_t int32;
+typedef uint16_t uint16;
+typedef uint32_t uint32;
+// TODO(vtl): Figure what's up with the 64-bit types. Can we just define them as
+// |int64_t|/|uint64_t|?
// The NSPR system headers define 64-bit as |long| when possible, except on
// Mac OS X. In order to not have typedef mismatches, we do the same on LP64.
//
// On Mac OS X, |long long| is used for 64-bit types for compatibility with
// <inttypes.h> format macros even in the LP64 model.
#if defined(__LP64__) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
-typedef long int64;
-#else
-typedef long long int64;
-#endif
-
-// NOTE: It is DANGEROUS to compare signed with unsigned types in loop
-// conditions and other conditional expressions, and it is DANGEROUS to
-// compute object/allocation sizes, indices, and offsets with signed types.
-// Integer overflow behavior for signed types is UNDEFINED in the C/C++
-// standards, but is defined for unsigned types.
-//
-// Use the unsigned types if your variable represents a bit pattern (e.g. a
-// hash value), object or allocation size, object count, offset,
-// array/vector index, etc.
-//
-// Do NOT use 'unsigned' to express "this value should always be positive";
-// use assertions for this.
-//
-// See the Chromium style guide for more information.
-// https://sites.google.com/a/chromium.org/dev/developers/coding-style
-
-typedef unsigned char uint8;
-typedef unsigned short uint16;
-typedef unsigned int uint32;
-
-// See the comment above about NSPR and 64-bit.
-#if defined(__LP64__) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
+typedef long int64;
typedef unsigned long uint64;
#else
+typedef long long int64;
typedef unsigned long long uint64;
#endif
@@ -60,7 +47,8 @@ typedef unsigned long long uint64;
// such values require up to 21 bits.
// (For type-checking on pointers, make this explicitly signed,
// and it should always be the signed version of whatever int32 is.)
-typedef signed int char32;
+// TODO(vtl): This is almost completely unused in Chromium. Delete it?
+typedef signed int char32;
const uint8 kuint8max = (( uint8) 0xFF);
const uint16 kuint16max = ((uint16) 0xFFFF);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698