Reland "Deuglify V8_INLINE and V8_NOINLINE."
R=dslomov@chromium.org Review URL: https://codereview.chromium.org/23604054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
0642e1933b
commit
8dbd822855
467
include/v8.h
467
include/v8.h
File diff suppressed because it is too large
Load Diff
@ -295,23 +295,27 @@
|
||||
// Helper macros
|
||||
|
||||
// A macro used to make better inlining. Don't bother for debug builds.
|
||||
// Use like:
|
||||
// V8_INLINE int GetZero() { return 0; }
|
||||
#if !defined(DEBUG) && V8_HAS_ATTRIBUTE_ALWAYS_INLINE
|
||||
# define V8_INLINE(declarator) inline __attribute__((always_inline)) declarator
|
||||
# define V8_INLINE inline __attribute__((always_inline))
|
||||
#elif !defined(DEBUG) && V8_HAS___FORCEINLINE
|
||||
# define V8_INLINE(declarator) __forceinline declarator
|
||||
# define V8_INLINE __forceinline
|
||||
#else
|
||||
# define V8_INLINE(declarator) inline declarator
|
||||
# define V8_INLINE inline
|
||||
#endif
|
||||
|
||||
|
||||
// A macro used to tell the compiler to never inline a particular function.
|
||||
// Don't bother for debug builds.
|
||||
// Use like:
|
||||
// V8_NOINLINE int GetMinusOne() { return -1; }
|
||||
#if !defined(DEBUG) && V8_HAS_ATTRIBUTE_NOINLINE
|
||||
# define V8_NOINLINE(declarator) __attribute__((noinline)) declarator
|
||||
# define V8_NOINLINE __attribute__((noinline))
|
||||
#elif !defined(DEBUG) && V8_HAS_DECLSPEC_NOINLINE
|
||||
# define V8_NOINLINE(declarator) __declspec(noinline) declarator
|
||||
# define V8_NOINLINE __declspec(noinline)
|
||||
#else
|
||||
# define V8_NOINLINE(declarator) declarator
|
||||
# define V8_NOINLINE /* NOT SUPPORTED */
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -54,7 +54,7 @@ namespace internal {
|
||||
// Define __cpuid() for non-MSVC compilers.
|
||||
#if !V8_CC_MSVC
|
||||
|
||||
static V8_INLINE(void __cpuid(int cpu_info[4], int info_type)) {
|
||||
static V8_INLINE void __cpuid(int cpu_info[4], int info_type) {
|
||||
#if defined(__i386__) && defined(__pic__)
|
||||
// Make sure to preserve ebx, which contains the pointer
|
||||
// to the GOT in case we're generating PIC.
|
||||
|
@ -342,9 +342,9 @@ F FUNCTION_CAST(Address addr) {
|
||||
DISALLOW_COPY_AND_ASSIGN(TypeName)
|
||||
|
||||
|
||||
// Newly written code should use V8_INLINE() and V8_NOINLINE() directly.
|
||||
#define INLINE(declarator) V8_INLINE(declarator)
|
||||
#define NO_INLINE(declarator) V8_NOINLINE(declarator)
|
||||
// Newly written code should use V8_INLINE and V8_NOINLINE directly.
|
||||
#define INLINE(declarator) V8_INLINE declarator
|
||||
#define NO_INLINE(declarator) V8_NOINLINE declarator
|
||||
|
||||
|
||||
// Newly written code should use V8_WARN_UNUSED_RESULT.
|
||||
|
@ -103,7 +103,7 @@ class ElapsedTimer V8_FINAL BASE_EMBEDDED {
|
||||
}
|
||||
|
||||
private:
|
||||
V8_INLINE(static TimeTicks Now()) {
|
||||
static V8_INLINE TimeTicks Now() {
|
||||
TimeTicks now = TimeTicks::HighResNow();
|
||||
ASSERT(!now.IsNull());
|
||||
return now;
|
||||
|
@ -34,7 +34,7 @@ namespace internal {
|
||||
|
||||
#if V8_OS_POSIX
|
||||
|
||||
static V8_INLINE(void InitializeNativeHandle(pthread_mutex_t* mutex)) {
|
||||
static V8_INLINE void InitializeNativeHandle(pthread_mutex_t* mutex) {
|
||||
int result;
|
||||
#if defined(DEBUG)
|
||||
// Use an error checking mutex in debug mode.
|
||||
@ -55,7 +55,7 @@ static V8_INLINE(void InitializeNativeHandle(pthread_mutex_t* mutex)) {
|
||||
}
|
||||
|
||||
|
||||
static V8_INLINE(void InitializeRecursiveNativeHandle(pthread_mutex_t* mutex)) {
|
||||
static V8_INLINE void InitializeRecursiveNativeHandle(pthread_mutex_t* mutex) {
|
||||
pthread_mutexattr_t attr;
|
||||
int result = pthread_mutexattr_init(&attr);
|
||||
ASSERT_EQ(0, result);
|
||||
@ -69,28 +69,28 @@ static V8_INLINE(void InitializeRecursiveNativeHandle(pthread_mutex_t* mutex)) {
|
||||
}
|
||||
|
||||
|
||||
static V8_INLINE(void DestroyNativeHandle(pthread_mutex_t* mutex)) {
|
||||
static V8_INLINE void DestroyNativeHandle(pthread_mutex_t* mutex) {
|
||||
int result = pthread_mutex_destroy(mutex);
|
||||
ASSERT_EQ(0, result);
|
||||
USE(result);
|
||||
}
|
||||
|
||||
|
||||
static V8_INLINE(void LockNativeHandle(pthread_mutex_t* mutex)) {
|
||||
static V8_INLINE void LockNativeHandle(pthread_mutex_t* mutex) {
|
||||
int result = pthread_mutex_lock(mutex);
|
||||
ASSERT_EQ(0, result);
|
||||
USE(result);
|
||||
}
|
||||
|
||||
|
||||
static V8_INLINE(void UnlockNativeHandle(pthread_mutex_t* mutex)) {
|
||||
static V8_INLINE void UnlockNativeHandle(pthread_mutex_t* mutex) {
|
||||
int result = pthread_mutex_unlock(mutex);
|
||||
ASSERT_EQ(0, result);
|
||||
USE(result);
|
||||
}
|
||||
|
||||
|
||||
static V8_INLINE(bool TryLockNativeHandle(pthread_mutex_t* mutex)) {
|
||||
static V8_INLINE bool TryLockNativeHandle(pthread_mutex_t* mutex) {
|
||||
int result = pthread_mutex_trylock(mutex);
|
||||
if (result == EBUSY) {
|
||||
return false;
|
||||
@ -101,32 +101,32 @@ static V8_INLINE(bool TryLockNativeHandle(pthread_mutex_t* mutex)) {
|
||||
|
||||
#elif V8_OS_WIN
|
||||
|
||||
static V8_INLINE(void InitializeNativeHandle(PCRITICAL_SECTION cs)) {
|
||||
static V8_INLINE void InitializeNativeHandle(PCRITICAL_SECTION cs) {
|
||||
InitializeCriticalSection(cs);
|
||||
}
|
||||
|
||||
|
||||
static V8_INLINE(void InitializeRecursiveNativeHandle(PCRITICAL_SECTION cs)) {
|
||||
static V8_INLINE void InitializeRecursiveNativeHandle(PCRITICAL_SECTION cs) {
|
||||
InitializeCriticalSection(cs);
|
||||
}
|
||||
|
||||
|
||||
static V8_INLINE(void DestroyNativeHandle(PCRITICAL_SECTION cs)) {
|
||||
static V8_INLINE void DestroyNativeHandle(PCRITICAL_SECTION cs) {
|
||||
DeleteCriticalSection(cs);
|
||||
}
|
||||
|
||||
|
||||
static V8_INLINE(void LockNativeHandle(PCRITICAL_SECTION cs)) {
|
||||
static V8_INLINE void LockNativeHandle(PCRITICAL_SECTION cs) {
|
||||
EnterCriticalSection(cs);
|
||||
}
|
||||
|
||||
|
||||
static V8_INLINE(void UnlockNativeHandle(PCRITICAL_SECTION cs)) {
|
||||
static V8_INLINE void UnlockNativeHandle(PCRITICAL_SECTION cs) {
|
||||
LeaveCriticalSection(cs);
|
||||
}
|
||||
|
||||
|
||||
static V8_INLINE(bool TryLockNativeHandle(PCRITICAL_SECTION cs)) {
|
||||
static V8_INLINE bool TryLockNativeHandle(PCRITICAL_SECTION cs) {
|
||||
return TryEnterCriticalSection(cs);
|
||||
}
|
||||
|
||||
|
@ -94,14 +94,14 @@ class Mutex V8_FINAL {
|
||||
int level_;
|
||||
#endif
|
||||
|
||||
V8_INLINE(void AssertHeldAndUnmark()) {
|
||||
V8_INLINE void AssertHeldAndUnmark() {
|
||||
#ifdef DEBUG
|
||||
ASSERT_EQ(1, level_);
|
||||
level_--;
|
||||
#endif
|
||||
}
|
||||
|
||||
V8_INLINE(void AssertUnheldAndMark()) {
|
||||
V8_INLINE void AssertUnheldAndMark() {
|
||||
#ifdef DEBUG
|
||||
ASSERT_EQ(0, level_);
|
||||
level_++;
|
||||
|
@ -66,7 +66,7 @@ class Socket V8_FINAL {
|
||||
// Set the value of the SO_REUSEADDR socket option.
|
||||
bool SetReuseAddress(bool reuse_address);
|
||||
|
||||
V8_INLINE(bool IsValid()) const {
|
||||
V8_INLINE bool IsValid() const {
|
||||
return native_handle_ != kInvalidNativeHandle;
|
||||
}
|
||||
|
||||
|
@ -1085,7 +1085,7 @@ class MemoryAllocator {
|
||||
|
||||
// Returns an indication of whether a pointer is in a space that has
|
||||
// been allocated by this MemoryAllocator.
|
||||
V8_INLINE(bool IsOutsideAllocatedSpace(const void* address)) const {
|
||||
V8_INLINE bool IsOutsideAllocatedSpace(const void* address) const {
|
||||
return address < lowest_ever_allocated_ ||
|
||||
address >= highest_ever_allocated_;
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ class RandomNumberGenerator V8_FINAL {
|
||||
// that one int value is pseudorandomly generated and returned.
|
||||
// All 2^32 possible integer values are produced with (approximately) equal
|
||||
// probability.
|
||||
V8_INLINE(int NextInt()) V8_WARN_UNUSED_RESULT {
|
||||
V8_INLINE int NextInt() V8_WARN_UNUSED_RESULT {
|
||||
return Next(32);
|
||||
}
|
||||
|
||||
@ -76,7 +76,7 @@ class RandomNumberGenerator V8_FINAL {
|
||||
// |NextBoolean()| is that one boolean value is pseudorandomly generated and
|
||||
// returned. The values true and false are produced with (approximately) equal
|
||||
// probability.
|
||||
V8_INLINE(bool NextBool()) V8_WARN_UNUSED_RESULT {
|
||||
V8_INLINE bool NextBool() V8_WARN_UNUSED_RESULT {
|
||||
return Next(1) != 0;
|
||||
}
|
||||
|
||||
|
@ -12670,8 +12670,8 @@ struct CopyablePersistentTraits {
|
||||
typedef Persistent<T, CopyablePersistentTraits<T> > CopyablePersistent;
|
||||
static const bool kResetInDestructor = true;
|
||||
template<class S, class M>
|
||||
V8_INLINE(static void Copy(const Persistent<S, M>& source,
|
||||
CopyablePersistent* dest)) {
|
||||
static V8_INLINE void Copy(const Persistent<S, M>& source,
|
||||
CopyablePersistent* dest) {
|
||||
// do nothing, just allow copy
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user