mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 740688 - Use uintptr_t instead of PRUword, and intptr_t instead of PRWord. r=jwalden
--HG-- extra : rebase_source : 648a581323d2c2893df780f71fe34dadcc4bbaab
This commit is contained in:
parent
b7d725d72a
commit
1a44f1208f
@ -57,6 +57,8 @@
|
||||
#include "plstr.h"
|
||||
#include "nsIScriptExternalNameSet.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
class nsIDocShell;
|
||||
class nsString;
|
||||
class nsIClassInfo;
|
||||
@ -147,8 +149,8 @@ private:
|
||||
// Property Policy
|
||||
union SecurityLevel
|
||||
{
|
||||
PRWord level;
|
||||
char* capability;
|
||||
intptr_t level;
|
||||
char* capability;
|
||||
};
|
||||
|
||||
// Security levels
|
||||
|
@ -95,6 +95,7 @@
|
||||
#include "nsIAsyncVerifyRedirectCallback.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "mozilla/dom/bindings/Utils.h"
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::dom;
|
||||
@ -3374,9 +3375,9 @@ nsScriptSecurityManager::nsScriptSecurityManager(void)
|
||||
mIsWritingPrefs(false),
|
||||
mPolicyPrefsChanged(true)
|
||||
{
|
||||
NS_ASSERTION(sizeof(PRWord) == sizeof(void*),
|
||||
"PRWord and void* have different lengths on this platform. "
|
||||
"This may cause a security failure with the SecurityLevel union.");
|
||||
MOZ_STATIC_ASSERT(sizeof(intptr_t) == sizeof(void*),
|
||||
"intptr_t and void* have different lengths on this platform. "
|
||||
"This may cause a security failure with the SecurityLevel union.");
|
||||
mPrincipals.Init(31);
|
||||
}
|
||||
|
||||
|
@ -55,6 +55,7 @@
|
||||
#include "nsAttrName.h"
|
||||
#include "nsTArray.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
const PRUint32 kUnknownIndex = PRUint32(-1);
|
||||
|
||||
@ -587,7 +588,7 @@ txXPathNodeUtils::getXSLTId(const txXPathNode& aNode,
|
||||
const txXPathNode& aBase,
|
||||
nsAString& aResult)
|
||||
{
|
||||
PRUword nodeid = ((PRUword)aNode.mNode) - ((PRUword)aBase.mNode);
|
||||
uintptr_t nodeid = ((uintptr_t)aNode.mNode) - ((uintptr_t)aBase.mNode);
|
||||
if (!aNode.isAttribute()) {
|
||||
CopyASCIItoUTF16(nsPrintfCString(kFmtSize, gPrintfFmt, nodeid),
|
||||
aResult);
|
||||
|
@ -48,6 +48,8 @@
|
||||
#include "nsPluginLogging.h"
|
||||
#include "nsPluginStreamListenerPeer.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsPluginStreamToFile, nsIOutputStream)
|
||||
|
||||
nsPluginStreamToFile::nsPluginStreamToFile(const char* target,
|
||||
@ -653,7 +655,7 @@ nsNPAPIPluginStreamListener::OnDataAvailable(nsIPluginStreamInfo* pluginInfo,
|
||||
// This alignment code is most likely bogus, but we'll leave
|
||||
// it in for now in case it matters for some plugins on some
|
||||
// architectures. Who knows...
|
||||
if (writeCount % sizeof(PRWord)) {
|
||||
if (writeCount % sizeof(intptr_t)) {
|
||||
// memmove will take care about alignment
|
||||
memmove(mStreamBuffer, ptrStreamBuffer + writeCount,
|
||||
mStreamBufferByteCount);
|
||||
|
@ -55,6 +55,7 @@
|
||||
|
||||
#include "nsContentUtils.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
#include "mozilla/Util.h"
|
||||
|
||||
bool
|
||||
@ -968,7 +969,7 @@ XPCWrappedNative::~XPCWrappedNative()
|
||||
Destroy();
|
||||
}
|
||||
|
||||
static const PRWord WRAPPER_WORD_POISON = 0xa8a8a8a8;
|
||||
static const intptr_t WRAPPER_WORD_POISON = 0xa8a8a8a8;
|
||||
|
||||
void
|
||||
XPCWrappedNative::Destroy()
|
||||
|
@ -48,6 +48,7 @@
|
||||
|
||||
#include "mozilla/Assertions.h"
|
||||
#include "mozilla/Attributes.h"
|
||||
#include "mozilla/StandardInteger.h"
|
||||
#include "mozilla/Util.h"
|
||||
|
||||
#include <string.h>
|
||||
@ -2769,7 +2770,7 @@ public:
|
||||
void SetWrapper(JSObject *obj)
|
||||
{
|
||||
js::IncrementalReferenceBarrier(GetWrapperPreserveColor());
|
||||
PRWord newval = PRWord(obj) | (mWrapperWord & FLAG_MASK);
|
||||
intptr_t newval = intptr_t(obj) | (mWrapperWord & FLAG_MASK);
|
||||
mWrapperWord = newval;
|
||||
}
|
||||
|
||||
@ -2854,7 +2855,7 @@ private:
|
||||
JSObject* mFlatJSObject;
|
||||
XPCNativeScriptableInfo* mScriptableInfo;
|
||||
XPCWrappedNativeTearOffChunk mFirstChunk;
|
||||
PRWord mWrapperWord;
|
||||
intptr_t mWrapperWord;
|
||||
|
||||
#ifdef XPC_CHECK_WRAPPER_THREADSAFETY
|
||||
public:
|
||||
|
@ -67,6 +67,8 @@
|
||||
#include "nsSVGEffects.h"
|
||||
#include "nsSVGClipPathFrame.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::layers;
|
||||
typedef FrameMetrics::ViewID ViewID;
|
||||
@ -2017,13 +2019,13 @@ nsDisplayScrollLayer::ShouldFlattenAway(nsDisplayListBuilder* aBuilder)
|
||||
return GetScrollLayerCount() > 1;
|
||||
}
|
||||
|
||||
PRWord
|
||||
intptr_t
|
||||
nsDisplayScrollLayer::GetScrollLayerCount()
|
||||
{
|
||||
FrameProperties props = mScrolledFrame->Properties();
|
||||
#ifdef DEBUG
|
||||
bool hasCount = false;
|
||||
PRWord result = reinterpret_cast<PRWord>(
|
||||
intptr_t result = reinterpret_cast<intptr_t>(
|
||||
props.Get(nsIFrame::ScrollLayerCount(), &hasCount));
|
||||
// If this aborts, then the property was either not added before scroll
|
||||
// layers were created or the property was deleted to early. If the latter,
|
||||
@ -2032,14 +2034,14 @@ nsDisplayScrollLayer::GetScrollLayerCount()
|
||||
NS_ABORT_IF_FALSE(hasCount, "nsDisplayScrollLayer should always be defined");
|
||||
return result;
|
||||
#else
|
||||
return reinterpret_cast<PRWord>(props.Get(nsIFrame::ScrollLayerCount()));
|
||||
return reinterpret_cast<intptr_t>(props.Get(nsIFrame::ScrollLayerCount()));
|
||||
#endif
|
||||
}
|
||||
|
||||
PRWord
|
||||
intptr_t
|
||||
nsDisplayScrollLayer::RemoveScrollLayerCount()
|
||||
{
|
||||
PRWord result = GetScrollLayerCount();
|
||||
intptr_t result = GetScrollLayerCount();
|
||||
FrameProperties props = mScrolledFrame->Properties();
|
||||
props.Remove(nsIFrame::ScrollLayerCount());
|
||||
return result;
|
||||
|
@ -57,6 +57,8 @@
|
||||
#include "FrameLayerBuilder.h"
|
||||
#include "nsThemeConstants.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
class nsIPresShell;
|
||||
@ -1887,8 +1889,8 @@ public:
|
||||
// Get the number of nsDisplayScrollLayers for a scroll frame. Note that this
|
||||
// number does not include nsDisplayScrollInfoLayers. If this number is not 1
|
||||
// after merging, all the nsDisplayScrollLayers should flatten away.
|
||||
PRWord GetScrollLayerCount();
|
||||
PRWord RemoveScrollLayerCount();
|
||||
intptr_t GetScrollLayerCount();
|
||||
intptr_t RemoveScrollLayerCount();
|
||||
|
||||
private:
|
||||
nsIFrame* mScrollFrame;
|
||||
|
@ -60,12 +60,14 @@
|
||||
#include "nsPrintfCString.h"
|
||||
#endif
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
// Even on 32-bit systems, we allocate objects from the frame arena
|
||||
// that require 8-byte alignment. The cast to PRUword is needed
|
||||
// that require 8-byte alignment. The cast to uintptr_t is needed
|
||||
// because plarena isn't as careful about mask construction as it
|
||||
// ought to be.
|
||||
#define ALIGN_SHIFT 3
|
||||
#define PL_ARENA_CONST_ALIGN_MASK ((PRUword(1) << ALIGN_SHIFT) - 1)
|
||||
#define PL_ARENA_CONST_ALIGN_MASK ((uintptr_t(1) << ALIGN_SHIFT) - 1)
|
||||
#include "plarena.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
@ -95,31 +97,31 @@ static const size_t ARENA_PAGE_SIZE = 8192;
|
||||
|
||||
#ifdef _WIN32
|
||||
static void *
|
||||
ReserveRegion(PRUword region, PRUword size)
|
||||
ReserveRegion(uintptr_t region, uintptr_t size)
|
||||
{
|
||||
return VirtualAlloc((void *)region, size, MEM_RESERVE, PAGE_NOACCESS);
|
||||
}
|
||||
|
||||
static void
|
||||
ReleaseRegion(void *region, PRUword size)
|
||||
ReleaseRegion(void *region, uintptr_t size)
|
||||
{
|
||||
VirtualFree(region, size, MEM_RELEASE);
|
||||
}
|
||||
|
||||
static bool
|
||||
ProbeRegion(PRUword region, PRUword size)
|
||||
ProbeRegion(uintptr_t region, uintptr_t size)
|
||||
{
|
||||
SYSTEM_INFO sinfo;
|
||||
GetSystemInfo(&sinfo);
|
||||
if (region >= (PRUword)sinfo.lpMaximumApplicationAddress &&
|
||||
region + size >= (PRUword)sinfo.lpMaximumApplicationAddress) {
|
||||
if (region >= (uintptr_t)sinfo.lpMaximumApplicationAddress &&
|
||||
region + size >= (uintptr_t)sinfo.lpMaximumApplicationAddress) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static PRUword
|
||||
static uintptr_t
|
||||
GetDesiredRegionSize()
|
||||
{
|
||||
SYSTEM_INFO sinfo;
|
||||
@ -131,7 +133,7 @@ GetDesiredRegionSize()
|
||||
|
||||
#elif defined(__OS2__)
|
||||
static void *
|
||||
ReserveRegion(PRUword region, PRUword size)
|
||||
ReserveRegion(uintptr_t region, uintptr_t size)
|
||||
{
|
||||
// OS/2 doesn't support allocation at an arbitrary address,
|
||||
// so return an address that is known to be invalid.
|
||||
@ -139,20 +141,20 @@ ReserveRegion(PRUword region, PRUword size)
|
||||
}
|
||||
|
||||
static void
|
||||
ReleaseRegion(void *region, PRUword size)
|
||||
ReleaseRegion(void *region, uintptr_t size)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static bool
|
||||
ProbeRegion(PRUword region, PRUword size)
|
||||
ProbeRegion(uintptr_t region, uintptr_t size)
|
||||
{
|
||||
// There's no reliable way to probe an address in the system
|
||||
// arena other than by touching it and seeing if a trap occurs.
|
||||
return false;
|
||||
}
|
||||
|
||||
static PRUword
|
||||
static uintptr_t
|
||||
GetDesiredRegionSize()
|
||||
{
|
||||
// Page size is fixed at 4k.
|
||||
@ -164,19 +166,19 @@ GetDesiredRegionSize()
|
||||
#else // Unix
|
||||
|
||||
static void *
|
||||
ReserveRegion(PRUword region, PRUword size)
|
||||
ReserveRegion(uintptr_t region, uintptr_t size)
|
||||
{
|
||||
return mmap((caddr_t)region, size, PROT_NONE, MAP_PRIVATE|MAP_ANON, -1, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
ReleaseRegion(void *region, PRUword size)
|
||||
ReleaseRegion(void *region, uintptr_t size)
|
||||
{
|
||||
munmap((caddr_t)region, size);
|
||||
}
|
||||
|
||||
static bool
|
||||
ProbeRegion(PRUword region, PRUword size)
|
||||
ProbeRegion(uintptr_t region, uintptr_t size)
|
||||
{
|
||||
if (madvise((caddr_t)region, size, MADV_NORMAL)) {
|
||||
return true;
|
||||
@ -185,7 +187,7 @@ ProbeRegion(PRUword region, PRUword size)
|
||||
}
|
||||
}
|
||||
|
||||
static PRUword
|
||||
static uintptr_t
|
||||
GetDesiredRegionSize()
|
||||
{
|
||||
return sysconf(_SC_PAGESIZE);
|
||||
@ -195,23 +197,23 @@ GetDesiredRegionSize()
|
||||
|
||||
#endif // system dependencies
|
||||
|
||||
PR_STATIC_ASSERT(sizeof(PRUword) == 4 || sizeof(PRUword) == 8);
|
||||
PR_STATIC_ASSERT(sizeof(PRUword) == sizeof(void *));
|
||||
PR_STATIC_ASSERT(sizeof(uintptr_t) == 4 || sizeof(uintptr_t) == 8);
|
||||
PR_STATIC_ASSERT(sizeof(uintptr_t) == sizeof(void *));
|
||||
|
||||
static PRUword
|
||||
ReservePoisonArea(PRUword rgnsize)
|
||||
static uintptr_t
|
||||
ReservePoisonArea(uintptr_t rgnsize)
|
||||
{
|
||||
if (sizeof(PRUword) == 8) {
|
||||
if (sizeof(uintptr_t) == 8) {
|
||||
// Use the hardware-inaccessible region.
|
||||
// We have to avoid 64-bit constants and shifts by 32 bits, since this
|
||||
// code is compiled in 32-bit mode, although it is never executed there.
|
||||
return
|
||||
(((PRUword(0x7FFFFFFFu) << 31) << 1 | PRUword(0xF0DEAFFFu))
|
||||
(((uintptr_t(0x7FFFFFFFu) << 31) << 1 | uintptr_t(0xF0DEAFFFu))
|
||||
& ~(rgnsize-1));
|
||||
|
||||
} else {
|
||||
// First see if we can allocate the preferred poison address from the OS.
|
||||
PRUword candidate = (0xF0DEAFFF & ~(rgnsize-1));
|
||||
uintptr_t candidate = (0xF0DEAFFF & ~(rgnsize-1));
|
||||
void *result = ReserveRegion(candidate, rgnsize);
|
||||
if (result == (void *)candidate) {
|
||||
// success - inaccessible page allocated
|
||||
@ -230,14 +232,14 @@ ReservePoisonArea(PRUword rgnsize)
|
||||
// The preferred address is already in use. Did the OS give us a
|
||||
// consolation prize?
|
||||
if (result != RESERVE_FAILED) {
|
||||
return PRUword(result);
|
||||
return uintptr_t(result);
|
||||
}
|
||||
|
||||
// It didn't, so try to allocate again, without any constraint on
|
||||
// the address.
|
||||
result = ReserveRegion(0, rgnsize);
|
||||
if (result != RESERVE_FAILED) {
|
||||
return PRUword(result);
|
||||
return uintptr_t(result);
|
||||
}
|
||||
|
||||
NS_RUNTIMEABORT("no usable poison region identified");
|
||||
@ -245,14 +247,14 @@ ReservePoisonArea(PRUword rgnsize)
|
||||
}
|
||||
}
|
||||
|
||||
static PRUword ARENA_POISON;
|
||||
static uintptr_t ARENA_POISON;
|
||||
static PRCallOnceType ARENA_POISON_guard;
|
||||
|
||||
static PRStatus
|
||||
ARENA_POISON_init()
|
||||
{
|
||||
PRUword rgnsize = GetDesiredRegionSize();
|
||||
PRUword rgnbase = ReservePoisonArea(rgnsize);
|
||||
uintptr_t rgnsize = GetDesiredRegionSize();
|
||||
uintptr_t rgnbase = ReservePoisonArea(rgnsize);
|
||||
|
||||
if (rgnsize == 0) // can't happen
|
||||
return PR_FAILURE;
|
||||
@ -357,8 +359,8 @@ struct nsPresArena::State {
|
||||
{
|
||||
char* p = reinterpret_cast<char*>(result);
|
||||
char* limit = p + list->mEntrySize;
|
||||
for (; p < limit; p += sizeof(PRUword)) {
|
||||
NS_ABORT_IF_FALSE(*reinterpret_cast<PRUword*>(p) == ARENA_POISON,
|
||||
for (; p < limit; p += sizeof(uintptr_t)) {
|
||||
NS_ABORT_IF_FALSE(*reinterpret_cast<uintptr_t*>(p) == ARENA_POISON,
|
||||
"PresArena: poison overwritten");
|
||||
}
|
||||
}
|
||||
@ -380,8 +382,8 @@ struct nsPresArena::State {
|
||||
|
||||
char* p = reinterpret_cast<char*>(aPtr);
|
||||
char* limit = p + list->mEntrySize;
|
||||
for (; p < limit; p += sizeof(PRUword)) {
|
||||
*reinterpret_cast<PRUword*>(p) = ARENA_POISON;
|
||||
for (; p < limit; p += sizeof(uintptr_t)) {
|
||||
*reinterpret_cast<uintptr_t*>(p) = ARENA_POISON;
|
||||
}
|
||||
|
||||
list->mEntries.AppendElement(aPtr);
|
||||
@ -478,7 +480,7 @@ nsPresArena::FreeByCode(nsQueryFrame::FrameIID aCode, void* aPtr)
|
||||
mState->Free(aCode, aPtr);
|
||||
}
|
||||
|
||||
/* static */ PRUword
|
||||
/* static */ uintptr_t
|
||||
nsPresArena::GetPoisonValue()
|
||||
{
|
||||
return ARENA_POISON;
|
||||
|
@ -48,6 +48,8 @@
|
||||
#include "nscore.h"
|
||||
#include "nsQueryFrame.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
// Uncomment this to disable arenas, instead forwarding to
|
||||
// malloc for every allocation.
|
||||
//#define DEBUG_TRACEMALLOC_PRESARENA 1
|
||||
@ -83,7 +85,7 @@ public:
|
||||
* The caller is responsible for ensuring that a pres shell has been
|
||||
* initialized before calling this.
|
||||
*/
|
||||
static PRUword GetPoisonValue();
|
||||
static uintptr_t GetPoisonValue();
|
||||
|
||||
private:
|
||||
struct State;
|
||||
|
@ -79,6 +79,7 @@
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "mozilla/LookAndFeel.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
#include "mozilla/StandardInteger.h"
|
||||
#include "FrameLayerBuilder.h"
|
||||
#include "nsSMILKeySpline.h"
|
||||
#include "nsSubDocumentFrame.h"
|
||||
@ -2100,11 +2101,11 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
void SetCount(PRWord aCount) {
|
||||
void SetCount(intptr_t aCount) {
|
||||
mProps.Set(nsIFrame::ScrollLayerCount(), reinterpret_cast<void*>(aCount));
|
||||
}
|
||||
|
||||
PRWord mCount;
|
||||
intptr_t mCount;
|
||||
FrameProperties mProps;
|
||||
nsIFrame* mScrollFrame;
|
||||
nsIFrame* mScrolledFrame;
|
||||
|
@ -40,20 +40,22 @@
|
||||
#include "nsCSSProps.h"
|
||||
#include "nsPresArena.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
inline size_t
|
||||
nsRuleData::GetPoisonOffset()
|
||||
{
|
||||
// Fill in mValueOffsets such that mValueStorage + mValueOffsets[i]
|
||||
// will yield the frame poison value for all uninitialized value
|
||||
// offsets.
|
||||
MOZ_STATIC_ASSERT(sizeof(PRUword) == sizeof(size_t),
|
||||
"expect PRUword and size_t to be the same size");
|
||||
MOZ_STATIC_ASSERT(PRUword(-1) > PRUword(0),
|
||||
"expect PRUword to be unsigned");
|
||||
MOZ_STATIC_ASSERT(sizeof(uintptr_t) == sizeof(size_t),
|
||||
"expect uintptr_t and size_t to be the same size");
|
||||
MOZ_STATIC_ASSERT(uintptr_t(-1) > uintptr_t(0),
|
||||
"expect uintptr_t to be unsigned");
|
||||
MOZ_STATIC_ASSERT(size_t(-1) > size_t(0),
|
||||
"expect size_t to be unsigned");
|
||||
PRUword framePoisonValue = nsPresArena::GetPoisonValue();
|
||||
return size_t(framePoisonValue - PRUword(mValueStorage)) /
|
||||
uintptr_t framePoisonValue = nsPresArena::GetPoisonValue();
|
||||
return size_t(framePoisonValue - uintptr_t(mValueStorage)) /
|
||||
sizeof(nsCSSValue);
|
||||
}
|
||||
|
||||
|
@ -48,6 +48,8 @@
|
||||
#include "nsPresContext.h"
|
||||
#include "nsStyleStruct.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
class nsStyleContext;
|
||||
struct PLDHashTable;
|
||||
struct nsRuleData;
|
||||
@ -352,7 +354,7 @@ private:
|
||||
return mChildren.asVoid != nsnull;
|
||||
}
|
||||
bool ChildrenAreHashed() {
|
||||
return (PRWord(mChildren.asVoid) & kTypeMask) == kHashType;
|
||||
return (intptr_t(mChildren.asVoid) & kTypeMask) == kHashType;
|
||||
}
|
||||
nsRuleNode* ChildrenList() {
|
||||
return mChildren.asList;
|
||||
@ -361,17 +363,17 @@ private:
|
||||
return &mChildren.asList;
|
||||
}
|
||||
PLDHashTable* ChildrenHash() {
|
||||
return (PLDHashTable*) (PRWord(mChildren.asHash) & ~PRWord(kTypeMask));
|
||||
return (PLDHashTable*) (intptr_t(mChildren.asHash) & ~intptr_t(kTypeMask));
|
||||
}
|
||||
void SetChildrenList(nsRuleNode *aList) {
|
||||
NS_ASSERTION(!(PRWord(aList) & kTypeMask),
|
||||
NS_ASSERTION(!(intptr_t(aList) & kTypeMask),
|
||||
"pointer not 2-byte aligned");
|
||||
mChildren.asList = aList;
|
||||
}
|
||||
void SetChildrenHash(PLDHashTable *aHashtable) {
|
||||
NS_ASSERTION(!(PRWord(aHashtable) & kTypeMask),
|
||||
NS_ASSERTION(!(intptr_t(aHashtable) & kTypeMask),
|
||||
"pointer not 2-byte aligned");
|
||||
mChildren.asHash = (PLDHashTable*)(PRWord(aHashtable) | kHashType);
|
||||
mChildren.asHash = (PLDHashTable*)(intptr_t(aHashtable) | kHashType);
|
||||
}
|
||||
void ConvertChildrenToHash();
|
||||
|
||||
|
@ -169,6 +169,7 @@
|
||||
|
||||
#include "mozilla/Mutex.h"
|
||||
#include "mozilla/CondVar.h"
|
||||
#include "mozilla/StandardInteger.h"
|
||||
#include "mozilla/Telemetry.h"
|
||||
|
||||
using namespace mozilla;
|
||||
@ -854,7 +855,7 @@ public:
|
||||
mFreeList = entries;
|
||||
for (PRUint32 i = 1; i < ArrayLength(aBlock->mEntries); ++i) {
|
||||
entries[i - 1].mNextInFreeList =
|
||||
(nsPurpleBufferEntry*)(PRUword(entries + i) | 1);
|
||||
(nsPurpleBufferEntry*)(uintptr_t(entries + i) | 1);
|
||||
}
|
||||
entries[ArrayLength(aBlock->mEntries) - 1].mNextInFreeList =
|
||||
(nsPurpleBufferEntry*)1;
|
||||
@ -883,7 +884,7 @@ public:
|
||||
for (nsPurpleBufferEntry *e = b->mEntries,
|
||||
*eEnd = ArrayEnd(b->mEntries);
|
||||
e != eEnd; ++e) {
|
||||
if (!(PRUword(e->mObject) & PRUword(1))) {
|
||||
if (!(uintptr_t(e->mObject) & uintptr_t(1))) {
|
||||
// This is a real entry (rather than something on the
|
||||
// free list).
|
||||
if (e->mObject) {
|
||||
@ -935,7 +936,7 @@ public:
|
||||
|
||||
nsPurpleBufferEntry *e = mFreeList;
|
||||
mFreeList = (nsPurpleBufferEntry*)
|
||||
(PRUword(mFreeList->mNextInFreeList) & ~PRUword(1));
|
||||
(uintptr_t(mFreeList->mNextInFreeList) & ~uintptr_t(1));
|
||||
return e;
|
||||
}
|
||||
|
||||
@ -967,7 +968,7 @@ public:
|
||||
#endif
|
||||
|
||||
e->mNextInFreeList =
|
||||
(nsPurpleBufferEntry*)(PRUword(mFreeList) | PRUword(1));
|
||||
(nsPurpleBufferEntry*)(uintptr_t(mFreeList) | uintptr_t(1));
|
||||
mFreeList = e;
|
||||
|
||||
--mCount;
|
||||
@ -1033,7 +1034,7 @@ nsPurpleBuffer::SelectPointers(GCGraphBuilder &aBuilder)
|
||||
for (nsPurpleBufferEntry *e = b->mEntries,
|
||||
*eEnd = ArrayEnd(b->mEntries);
|
||||
e != eEnd; ++e) {
|
||||
if (!(PRUword(e->mObject) & PRUword(1))) {
|
||||
if (!(uintptr_t(e->mObject) & uintptr_t(1))) {
|
||||
if (e->mObject) {
|
||||
++realCount;
|
||||
}
|
||||
@ -1058,7 +1059,7 @@ nsPurpleBuffer::SelectPointers(GCGraphBuilder &aBuilder)
|
||||
for (nsPurpleBufferEntry *e = b->mEntries,
|
||||
*eEnd = ArrayEnd(b->mEntries);
|
||||
e != eEnd; ++e) {
|
||||
if (!(PRUword(e->mObject) & PRUword(1))) {
|
||||
if (!(uintptr_t(e->mObject) & uintptr_t(1))) {
|
||||
// This is a real entry (rather than something on the
|
||||
// free list).
|
||||
if (!e->mObject || AddPurpleRoot(aBuilder, e->mObject)) {
|
||||
@ -2163,7 +2164,7 @@ nsPurpleBuffer::RemoveSkippable(bool removeChildlessNodes)
|
||||
for (nsPurpleBufferEntry *e = b->mEntries,
|
||||
*eEnd = ArrayEnd(b->mEntries);
|
||||
e != eEnd; ++e) {
|
||||
if (!(PRUword(e->mObject) & PRUword(1))) {
|
||||
if (!(uintptr_t(e->mObject) & uintptr_t(1))) {
|
||||
// This is a real entry (rather than something on the
|
||||
// free list).
|
||||
if (e->mObject) {
|
||||
@ -2201,7 +2202,7 @@ nsPurpleBuffer::NoteAll(GCGraphBuilder &builder)
|
||||
for (nsPurpleBufferEntry *e = b->mEntries,
|
||||
*eEnd = ArrayEnd(b->mEntries);
|
||||
e != eEnd; ++e) {
|
||||
if (!(PRUword(e->mObject) & PRUword(1)) && e->mObject) {
|
||||
if (!(uintptr_t(e->mObject) & uintptr_t(1)) && e->mObject) {
|
||||
builder.NoteXPCOMRoot(e->mObject);
|
||||
}
|
||||
}
|
||||
|
@ -56,6 +56,7 @@
|
||||
* Incorporate the core NSPR data types which XPCOM uses.
|
||||
*/
|
||||
#include "prtypes.h"
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
/*
|
||||
* This is for functions that are like malloc_usable_size. Such functions are
|
||||
@ -393,9 +394,9 @@ typedef PRUint32 nsrefcnt;
|
||||
* Use these macros to do 64bit safe pointer conversions.
|
||||
*/
|
||||
|
||||
#define NS_PTR_TO_INT32(x) ((PRInt32) (PRWord) (x))
|
||||
#define NS_PTR_TO_UINT32(x) ((PRUint32) (PRWord) (x))
|
||||
#define NS_INT32_TO_PTR(x) ((void *) (PRWord) (x))
|
||||
#define NS_PTR_TO_INT32(x) ((PRInt32) (intptr_t) (x))
|
||||
#define NS_PTR_TO_UINT32(x) ((PRUint32) (intptr_t) (x))
|
||||
#define NS_INT32_TO_PTR(x) ((void *) (intptr_t) (x))
|
||||
|
||||
/*
|
||||
* Use NS_STRINGIFY to form a string literal from the value of a macro.
|
||||
|
@ -41,6 +41,8 @@
|
||||
|
||||
#include "nsDebug.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
// Comparator callback function for sorting array values.
|
||||
typedef int (* nsVoidArrayComparatorFunc)
|
||||
(const void* aElement1, const void* aElement2, void* aData);
|
||||
@ -297,19 +299,19 @@ private:
|
||||
|
||||
bool HasSingle() const
|
||||
{
|
||||
return !!(reinterpret_cast<PRWord>(mImpl) & 0x1);
|
||||
return !!(reinterpret_cast<intptr_t>(mImpl) & 0x1);
|
||||
}
|
||||
void* GetSingle() const
|
||||
{
|
||||
NS_ASSERTION(HasSingle(), "wrong type");
|
||||
return reinterpret_cast<void*>
|
||||
(reinterpret_cast<PRWord>(mImpl) & ~0x1);
|
||||
(reinterpret_cast<intptr_t>(mImpl) & ~0x1);
|
||||
}
|
||||
void SetSingle(void *aChild)
|
||||
{
|
||||
NS_ASSERTION(HasSingle() || !mImpl, "overwriting array");
|
||||
mImpl = reinterpret_cast<Impl*>
|
||||
(reinterpret_cast<PRWord>(aChild) | 0x1);
|
||||
(reinterpret_cast<intptr_t>(aChild) | 0x1);
|
||||
}
|
||||
bool IsEmpty() const
|
||||
{
|
||||
|
@ -46,6 +46,7 @@
|
||||
|
||||
#include "xptcprivate.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
extern "C" uint32
|
||||
invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
|
||||
@ -96,19 +97,19 @@ invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
|
||||
case nsXPTType::T_I16 : *d = (PRUint32) s->val.i16; break;
|
||||
case nsXPTType::T_I32 : *d = (PRUint32) s->val.i32; break;
|
||||
case nsXPTType::T_I64 :
|
||||
if ((PRWord)d & 4) d++;
|
||||
if ((intptr_t)d & 4) d++;
|
||||
*((PRInt64*) d) = s->val.i64; d++;
|
||||
break;
|
||||
case nsXPTType::T_U8 : *d = (PRUint32) s->val.u8; break;
|
||||
case nsXPTType::T_U16 : *d = (PRUint32) s->val.u16; break;
|
||||
case nsXPTType::T_U32 : *d = (PRUint32) s->val.u32; break;
|
||||
case nsXPTType::T_U64 :
|
||||
if ((PRWord)d & 4) d++;
|
||||
if ((intptr_t)d & 4) d++;
|
||||
*((PRUint64*) d) = s->val.u64; d++;
|
||||
break;
|
||||
case nsXPTType::T_FLOAT : *((float*) d) = s->val.f; break;
|
||||
case nsXPTType::T_DOUBLE :
|
||||
if ((PRWord)d & 4) d++;
|
||||
if ((intptr_t)d & 4) d++;
|
||||
*((double*) d) = s->val.d; d++;
|
||||
break;
|
||||
case nsXPTType::T_BOOL : *d = (bool) s->val.b; break;
|
||||
|
@ -41,6 +41,8 @@
|
||||
#include "xptcprivate.h"
|
||||
#include "xptiprivate.h"
|
||||
|
||||
#include "mozilla/StandardInteger.h"
|
||||
|
||||
/*
|
||||
* This is for MIPS O32 ABI
|
||||
* Args contains a0-3 and then the stack.
|
||||
@ -90,15 +92,15 @@ PrepareAndDispatch(nsXPTCStubBase* self, PRUint32 methodIndex, PRUint32* args)
|
||||
switch(type)
|
||||
{
|
||||
case nsXPTType::T_I64 :
|
||||
if ((PRWord)ap & 4) ap++;
|
||||
if ((intptr_t)ap & 4) ap++;
|
||||
dp->val.i64 = *((PRInt64*) ap); ap++;
|
||||
break;
|
||||
case nsXPTType::T_U64 :
|
||||
if ((PRWord)ap & 4) ap++;
|
||||
if ((intptr_t)ap & 4) ap++;
|
||||
dp->val.u64 = *((PRInt64*) ap); ap++;
|
||||
break;
|
||||
case nsXPTType::T_DOUBLE:
|
||||
if ((PRWord)ap & 4) ap++;
|
||||
if ((intptr_t)ap & 4) ap++;
|
||||
dp->val.d = *((double*) ap); ap++;
|
||||
break;
|
||||
#ifdef IS_LITTLE_ENDIAN
|
||||
|
Loading…
Reference in New Issue
Block a user