mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1144366 followup - Stop declaring multiple pointers on a single line. r=jorendorff
This commit is contained in:
parent
b588ebc14b
commit
d9ea65d135
@ -98,7 +98,8 @@ class Logging
|
||||
}
|
||||
|
||||
void formatObject(bool incoming, bool local, ObjectId id, nsCString& out) {
|
||||
const char* side, *objDesc;
|
||||
const char* side;
|
||||
const char* objDesc;
|
||||
void* ptr;
|
||||
|
||||
if (local == incoming) {
|
||||
|
@ -870,7 +870,8 @@ class HashTable : private AllocPolicy
|
||||
++cur;
|
||||
}
|
||||
|
||||
Entry* cur, *end;
|
||||
Entry* cur;
|
||||
Entry* end;
|
||||
#ifdef JS_DEBUG
|
||||
const HashTable* table_;
|
||||
uint64_t mutationCount;
|
||||
@ -1090,7 +1091,8 @@ class HashTable : private AllocPolicy
|
||||
|
||||
static void destroyTable(AllocPolicy& alloc, Entry* oldTable, uint32_t capacity)
|
||||
{
|
||||
for (Entry* e = oldTable, *end = e + capacity; e < end; ++e)
|
||||
Entry* end = oldTable + capacity;
|
||||
for (Entry* e = oldTable; e < end; ++e)
|
||||
e->destroyIfLive();
|
||||
alloc.free_(oldTable);
|
||||
}
|
||||
@ -1346,7 +1348,8 @@ class HashTable : private AllocPolicy
|
||||
table = newTable;
|
||||
|
||||
// Copy only live entries, leaving removed ones behind.
|
||||
for (Entry* src = oldTable, *end = src + oldCap; src < end; ++src) {
|
||||
Entry* end = oldTable + oldCap;
|
||||
for (Entry* src = oldTable; src < end; ++src) {
|
||||
if (src->isLive()) {
|
||||
HashNumber hn = src->getKeyHash();
|
||||
findFreeEntry(hn).setLive(
|
||||
@ -1480,7 +1483,8 @@ class HashTable : private AllocPolicy
|
||||
memset(table, 0, sizeof(*table) * capacity());
|
||||
} else {
|
||||
uint32_t tableCapacity = capacity();
|
||||
for (Entry* e = table, *end = table + tableCapacity; e < end; ++e)
|
||||
Entry* end = table + tableCapacity;
|
||||
for (Entry* e = table; e < end; ++e)
|
||||
e->clear();
|
||||
}
|
||||
removedCount = 0;
|
||||
|
@ -795,7 +795,8 @@ class MOZ_STACK_CLASS Rooted : public js::RootedBase<T>
|
||||
* example, Rooted<JSObject> and Rooted<JSFunction>, which use the same
|
||||
* stack head pointer for different classes.
|
||||
*/
|
||||
Rooted<void*>** stack, *prev;
|
||||
Rooted<void*>** stack;
|
||||
Rooted<void*>* prev;
|
||||
|
||||
/*
|
||||
* |ptr| must be the last field in Rooted because the analysis treats all
|
||||
|
@ -6363,7 +6363,8 @@ CheckConditional(FunctionCompiler& f, ParseNode* ternary, MDefinition** def, Typ
|
||||
if (!condType.isInt())
|
||||
return f.failf(cond, "%s is not a subtype of int", condType.toChars());
|
||||
|
||||
MBasicBlock* thenBlock = nullptr, *elseBlock = nullptr;
|
||||
MBasicBlock* thenBlock = nullptr;
|
||||
MBasicBlock* elseBlock = nullptr;
|
||||
if (!f.branchAndStartThen(condDef, &thenBlock, &elseBlock, thenExpr, elseExpr))
|
||||
return false;
|
||||
|
||||
@ -6482,7 +6483,8 @@ CheckAddOrSub(FunctionCompiler& f, ParseNode* expr, MDefinition** def, Type* typ
|
||||
ParseNode* lhs = AddSubLeft(expr);
|
||||
ParseNode* rhs = AddSubRight(expr);
|
||||
|
||||
MDefinition* lhsDef, *rhsDef;
|
||||
MDefinition* lhsDef;
|
||||
MDefinition* rhsDef;
|
||||
Type lhsType, rhsType;
|
||||
unsigned lhsNumAddOrSub, rhsNumAddOrSub;
|
||||
|
||||
@ -6545,7 +6547,8 @@ CheckDivOrMod(FunctionCompiler& f, ParseNode* expr, MDefinition** def, Type* typ
|
||||
ParseNode* lhs = DivOrModLeft(expr);
|
||||
ParseNode* rhs = DivOrModRight(expr);
|
||||
|
||||
MDefinition* lhsDef, *rhsDef;
|
||||
MDefinition* lhsDef;
|
||||
MDefinition* rhsDef;
|
||||
Type lhsType, rhsType;
|
||||
if (!CheckExpr(f, lhs, &lhsDef, &lhsType))
|
||||
return false;
|
||||
@ -6600,7 +6603,8 @@ CheckComparison(FunctionCompiler& f, ParseNode* comp, MDefinition** def, Type* t
|
||||
ParseNode* lhs = ComparisonLeft(comp);
|
||||
ParseNode* rhs = ComparisonRight(comp);
|
||||
|
||||
MDefinition* lhsDef, *rhsDef;
|
||||
MDefinition* lhsDef;
|
||||
MDefinition* rhsDef;
|
||||
Type lhsType, rhsType;
|
||||
if (!CheckExpr(f, lhs, &lhsDef, &lhsType))
|
||||
return false;
|
||||
@ -6947,9 +6951,12 @@ CheckIfConditional(FunctionCompiler& f, ParseNode* conditional, ParseNode* thenS
|
||||
ParseNode* lhs = TernaryKid2(conditional);
|
||||
ParseNode* rhs = TernaryKid3(conditional);
|
||||
|
||||
MBasicBlock* maybeAndTest = nullptr, *maybeOrTest = nullptr;
|
||||
MBasicBlock** ifTrueBlock = &maybeAndTest, **ifFalseBlock = &maybeOrTest;
|
||||
ParseNode* ifTrueBlockNode = lhs, *ifFalseBlockNode = rhs;
|
||||
MBasicBlock* maybeAndTest = nullptr;
|
||||
MBasicBlock* maybeOrTest = nullptr;
|
||||
MBasicBlock** ifTrueBlock = &maybeAndTest;
|
||||
MBasicBlock** ifFalseBlock = &maybeOrTest;
|
||||
ParseNode* ifTrueBlockNode = lhs;
|
||||
ParseNode* ifFalseBlockNode = rhs;
|
||||
|
||||
// Try to spot opportunities for short-circuiting in the AND subpart
|
||||
uint32_t andTestLiteral = 0;
|
||||
@ -7071,7 +7078,8 @@ CheckIf(FunctionCompiler& f, ParseNode* ifStmt)
|
||||
ParseNode* thenStmt = TernaryKid2(ifStmt);
|
||||
ParseNode* elseStmt = TernaryKid3(ifStmt);
|
||||
|
||||
MBasicBlock* thenBlock = nullptr, *elseBlock = nullptr;
|
||||
MBasicBlock* thenBlock = nullptr;
|
||||
MBasicBlock* elseBlock = nullptr;
|
||||
ParseNode* elseOrJoinStmt = elseStmt ? elseStmt : nextStmt;
|
||||
|
||||
if (!CheckIfCondition(f, cond, thenStmt, elseOrJoinStmt, &thenBlock, &elseBlock))
|
||||
|
@ -137,9 +137,10 @@ class OrderedHashTable
|
||||
}
|
||||
|
||||
~OrderedHashTable() {
|
||||
for (Range* r = ranges, *next; r; r = next) {
|
||||
next = r->next;
|
||||
for (Range* r = ranges; r; ) {
|
||||
Range* next = r->next;
|
||||
r->onTableDestroyed();
|
||||
r = next;
|
||||
}
|
||||
alloc.free_(hashTable);
|
||||
freeData(data, dataLength);
|
||||
@ -593,7 +594,8 @@ class OrderedHashTable
|
||||
void rehashInPlace() {
|
||||
for (uint32_t i = 0, N = hashBuckets(); i < N; i++)
|
||||
hashTable[i] = nullptr;
|
||||
Data* wp = data, *end = data + dataLength;
|
||||
Data* wp = data;
|
||||
Data* end = data + dataLength;
|
||||
for (Data* rp = data; rp != end; rp++) {
|
||||
if (!Ops::isEmpty(Ops::getKey(rp->element))) {
|
||||
HashNumber h = prepareHash(Ops::getKey(rp->element)) >> hashShift;
|
||||
@ -642,7 +644,8 @@ class OrderedHashTable
|
||||
}
|
||||
|
||||
Data* wp = newData;
|
||||
for (Data* p = data, *end = data + dataLength; p != end; p++) {
|
||||
Data* end = data + dataLength;
|
||||
for (Data* p = data; p != end; p++) {
|
||||
if (!Ops::isEmpty(Ops::getKey(p->element))) {
|
||||
HashNumber h = prepareHash(Ops::getKey(p->element)) >> newHashShift;
|
||||
new (wp) Data(Move(p->element), newHashTable[h]);
|
||||
|
@ -60,7 +60,8 @@ class InlineMap
|
||||
MOZ_ASSERT(map.initialized());
|
||||
}
|
||||
|
||||
for (InlineElem* it = inl, *end = inl + inlNext; it != end; ++it) {
|
||||
InlineElem* end = inl + inlNext;
|
||||
for (InlineElem* it = inl; it != end; ++it) {
|
||||
if (it->key && !map.putNew(it->key, it->value))
|
||||
return false;
|
||||
}
|
||||
@ -211,7 +212,8 @@ class InlineMap
|
||||
if (usingMap())
|
||||
return Ptr(map.lookup(key));
|
||||
|
||||
for (InlineElem* it = inl, *end = inl + inlNext; it != end; ++it) {
|
||||
InlineElem* end = inl + inlNext;
|
||||
for (InlineElem* it = inl; it != end; ++it) {
|
||||
if (it->key == key)
|
||||
return Ptr(it);
|
||||
}
|
||||
@ -224,7 +226,8 @@ class InlineMap
|
||||
if (usingMap())
|
||||
return AddPtr(map.lookupForAdd(key));
|
||||
|
||||
for (InlineElem* it = inl, *end = inl + inlNext; it != end; ++it) {
|
||||
InlineElem* end = inl + inlNext;
|
||||
for (InlineElem* it = inl; it != end; ++it) {
|
||||
if (it->key == key)
|
||||
return AddPtr(it, true);
|
||||
}
|
||||
|
@ -25,7 +25,9 @@ class SplayTree
|
||||
{
|
||||
struct Node {
|
||||
T item;
|
||||
Node* left, *right, *parent;
|
||||
Node* left;
|
||||
Node* right;
|
||||
Node* parent;
|
||||
|
||||
explicit Node(const T& item)
|
||||
: item(item), left(nullptr), right(nullptr), parent(nullptr)
|
||||
@ -33,7 +35,8 @@ class SplayTree
|
||||
};
|
||||
|
||||
LifoAlloc* alloc;
|
||||
Node* root, *freeList;
|
||||
Node* root;
|
||||
Node* freeList;
|
||||
|
||||
#ifdef DEBUG
|
||||
bool enableCheckCoherency;
|
||||
@ -124,7 +127,8 @@ class SplayTree
|
||||
// Find another node which can be swapped in for the root: either the
|
||||
// rightmost child of the root's left, or the leftmost child of the
|
||||
// root's right.
|
||||
Node* swap, *swapChild;
|
||||
Node* swap;
|
||||
Node* swapChild;
|
||||
if (root->left) {
|
||||
swap = root->left;
|
||||
while (swap->right)
|
||||
@ -167,7 +171,8 @@ class SplayTree
|
||||
Node* lookup(const T& v)
|
||||
{
|
||||
MOZ_ASSERT(root);
|
||||
Node* node = root, *parent;
|
||||
Node* node = root;
|
||||
Node* parent;
|
||||
do {
|
||||
parent = node;
|
||||
int c = C::compare(v, node->item);
|
||||
|
@ -2280,7 +2280,8 @@ BytecodeEmitter::emitPropLHS(ParseNode* pn, JSOp op)
|
||||
*/
|
||||
if (pn2->isKind(PNK_DOT)) {
|
||||
ParseNode* pndot = pn2;
|
||||
ParseNode* pnup = nullptr, *pndown;
|
||||
ParseNode* pnup = nullptr;
|
||||
ParseNode* pndown;
|
||||
ptrdiff_t top = offset();
|
||||
for (;;) {
|
||||
/* Reverse pndot->pn_expr to point up, not down. */
|
||||
@ -6673,8 +6674,8 @@ BytecodeEmitter::emitDefaults(ParseNode* pn)
|
||||
{
|
||||
MOZ_ASSERT(pn->isKind(PNK_ARGSBODY));
|
||||
|
||||
ParseNode* arg, *pnlast = pn->last();
|
||||
for (arg = pn->pn_head; arg != pnlast; arg = arg->pn_next) {
|
||||
ParseNode* pnlast = pn->last();
|
||||
for (ParseNode* arg = pn->pn_head; arg != pnlast; arg = arg->pn_next) {
|
||||
if (!(arg->pn_dflags & PND_DEFAULT))
|
||||
continue;
|
||||
if (!bindNameToSlot(arg))
|
||||
|
@ -617,7 +617,9 @@ Fold(ExclusiveContext* cx, ParseNode** pnp,
|
||||
bool inGenexpLambda, SyntacticContext sc)
|
||||
{
|
||||
ParseNode* pn = *pnp;
|
||||
ParseNode* pn1 = nullptr, *pn2 = nullptr, *pn3 = nullptr;
|
||||
ParseNode* pn1 = nullptr;
|
||||
ParseNode* pn2 = nullptr;
|
||||
ParseNode* pn3 = nullptr;
|
||||
|
||||
JS_CHECK_RECURSION(cx, return false);
|
||||
|
||||
|
@ -35,7 +35,8 @@ ParseMapPool::checkInvariants()
|
||||
void
|
||||
ParseMapPool::purgeAll()
|
||||
{
|
||||
for (void** it = all.begin(), **end = all.end(); it != end; ++it)
|
||||
void** end = all.end();
|
||||
for (void** it = all.begin(); it != end; ++it)
|
||||
js_delete<AtomMapT>(asAtomMap(*it));
|
||||
|
||||
all.clearAndFree();
|
||||
@ -121,8 +122,8 @@ frontend::InitAtomMap(frontend::AtomIndexMap* indices, HeapPtrAtom* atoms)
|
||||
atoms[index].init(atom);
|
||||
}
|
||||
} else {
|
||||
for (const AtomIndexMap::InlineElem* it = indices->asInline(), *end = indices->inlineEnd();
|
||||
it != end; ++it) {
|
||||
const AtomIndexMap::InlineElem* end = indices->inlineEnd();
|
||||
for (const AtomIndexMap::InlineElem* it = indices->asInline(); it != end; ++it) {
|
||||
JSAtom* atom = it->key;
|
||||
if (!atom)
|
||||
continue;
|
||||
|
@ -60,14 +60,14 @@ class ParseMapPool
|
||||
#ifdef DEBUG
|
||||
bool ok = false;
|
||||
/* Make sure the map is in |all| but not already in |recyclable|. */
|
||||
for (void** it = all.begin(), **end = all.end(); it != end; ++it) {
|
||||
for (void** it = all.begin(); it != all.end(); ++it) {
|
||||
if (*it == map) {
|
||||
ok = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
MOZ_ASSERT(ok);
|
||||
for (void** it = recyclable.begin(), **end = recyclable.end(); it != end; ++it)
|
||||
for (void** it = recyclable.begin(); it != recyclable.end(); ++it)
|
||||
MOZ_ASSERT(*it != map);
|
||||
#endif
|
||||
MOZ_ASSERT(recyclable.length() < all.length());
|
||||
|
@ -23,9 +23,14 @@ ParseNode::checkListConsistency()
|
||||
ParseNode** tail;
|
||||
uint32_t count = 0;
|
||||
if (pn_head) {
|
||||
ParseNode* pn, *last;
|
||||
for (pn = last = pn_head; pn; last = pn, pn = pn->pn_next, count++)
|
||||
;
|
||||
ParseNode* last = pn_head;
|
||||
ParseNode* pn = last;
|
||||
while (pn) {
|
||||
last = pn;
|
||||
pn = pn->pn_next;
|
||||
count++;
|
||||
}
|
||||
|
||||
tail = &last->pn_next;
|
||||
} else {
|
||||
tail = &pn_head;
|
||||
|
@ -4745,7 +4745,8 @@ Parser<FullParseHandler>::forStatement()
|
||||
* pc->parsingForInit.
|
||||
*/
|
||||
StmtInfoPC letStmt(context); /* used if blockObj != nullptr. */
|
||||
ParseNode* pn2, *pn3; /* forHead->pn_kid2 and pn_kid3. */
|
||||
ParseNode* pn2; /* forHead->pn_kid2 */
|
||||
ParseNode* pn3; /* forHead->pn_kid3 */
|
||||
ParseNodeKind headKind = PNK_FORHEAD;
|
||||
if (pn1) {
|
||||
bool isForIn, isForOf;
|
||||
@ -6903,7 +6904,9 @@ Parser<FullParseHandler>::legacyComprehensionTail(ParseNode* bodyExpr, unsigned
|
||||
}
|
||||
|
||||
unsigned adjust;
|
||||
ParseNode* pn, *pn3, **pnp;
|
||||
ParseNode* pn;
|
||||
ParseNode* pn3;
|
||||
ParseNode** pnp;
|
||||
StmtInfoPC stmtInfo(context);
|
||||
BindData<FullParseHandler> data(context);
|
||||
TokenKind tt;
|
||||
|
@ -1743,7 +1743,8 @@ GCMarker::processMarkStackOther(uintptr_t tag, uintptr_t addr)
|
||||
} else if (tag == SavedValueArrayTag) {
|
||||
MOZ_ASSERT(!(addr & CellMask));
|
||||
NativeObject* obj = reinterpret_cast<NativeObject*>(addr);
|
||||
HeapValue* vp, *end;
|
||||
HeapValue* vp;
|
||||
HeapValue* end;
|
||||
if (restoreValueArray(obj, (void**)&vp, (void**)&end))
|
||||
pushValueArray(obj, vp, end);
|
||||
else
|
||||
@ -1783,7 +1784,8 @@ GCMarker::processMarkStackTop(SliceBudget& budget)
|
||||
* object directly. It allows to eliminate the tail recursion and
|
||||
* significantly improve the marking performance, see bug 641025.
|
||||
*/
|
||||
HeapSlot* vp, *end;
|
||||
HeapSlot* vp;
|
||||
HeapSlot* end;
|
||||
JSObject* obj;
|
||||
|
||||
const int32_t* unboxedTraceList;
|
||||
|
@ -611,7 +611,10 @@ js::Nursery::traceObject(MinorCollectionTracer* trc, JSObject* obj)
|
||||
if (!nobj->hasEmptyElements() && !nobj->denseElementsAreCopyOnWrite())
|
||||
markSlots(trc, nobj->getDenseElements(), nobj->getDenseInitializedLength());
|
||||
|
||||
HeapSlot* fixedStart, *fixedEnd, *dynStart, *dynEnd;
|
||||
HeapSlot* fixedStart;
|
||||
HeapSlot* fixedEnd;
|
||||
HeapSlot* dynStart;
|
||||
HeapSlot* dynEnd;
|
||||
nobj->getSlotRange(0, nobj->slotSpan(), &fixedStart, &fixedEnd, &dynStart, &dynEnd);
|
||||
markSlots(trc, fixedStart, fixedEnd);
|
||||
markSlots(trc, dynStart, dynEnd);
|
||||
@ -690,7 +693,8 @@ js::Nursery::moveObjectToTenured(MinorCollectionTracer* trc,
|
||||
|
||||
js_memcpy(dst, src, srcSize);
|
||||
if (src->isNative()) {
|
||||
NativeObject* ndst = &dst->as<NativeObject>(), *nsrc = &src->as<NativeObject>();
|
||||
NativeObject* ndst = &dst->as<NativeObject>();
|
||||
NativeObject* nsrc = &src->as<NativeObject>();
|
||||
tenuredSize += moveSlotsToTenured(ndst, nsrc, dstKind);
|
||||
tenuredSize += moveElementsToTenured(ndst, nsrc, dstKind);
|
||||
|
||||
|
@ -329,7 +329,8 @@ enum ZoneSelector {
|
||||
class ZonesIter
|
||||
{
|
||||
gc::AutoEnterIteration iterMarker;
|
||||
JS::Zone** it, **end;
|
||||
JS::Zone** it;
|
||||
JS::Zone** end;
|
||||
|
||||
public:
|
||||
ZonesIter(JSRuntime* rt, ZoneSelector selector) : iterMarker(&rt->gc) {
|
||||
|
@ -282,7 +282,8 @@ class RegExpParser
|
||||
frontend::TokenStream& ts;
|
||||
LifoAlloc* alloc;
|
||||
RegExpCaptureVector* captures_;
|
||||
const CharT* next_pos_, *end_;
|
||||
const CharT* next_pos_;
|
||||
const CharT* end_;
|
||||
widechar current_;
|
||||
// The capture count is only valid after we have scanned for captures.
|
||||
int capture_count_;
|
||||
|
@ -141,7 +141,8 @@ LifetimesOverlap(BacktrackingVirtualRegister* reg0, BacktrackingVirtualRegister*
|
||||
// In such cases, only consider the first interval.
|
||||
MOZ_ASSERT(reg0->numIntervals() <= 2 && reg1->numIntervals() <= 2);
|
||||
|
||||
LiveInterval* interval0 = reg0->getInterval(0), *interval1 = reg1->getInterval(0);
|
||||
LiveInterval* interval0 = reg0->getInterval(0);
|
||||
LiveInterval* interval1 = reg1->getInterval(0);
|
||||
|
||||
// Interval ranges are sorted in reverse order. The lifetimes overlap if
|
||||
// any of their ranges overlap.
|
||||
@ -190,7 +191,8 @@ BacktrackingAllocator::tryGroupRegisters(uint32_t vreg0, uint32_t vreg1)
|
||||
// See if reg0 and reg1 can be placed in the same group, following the
|
||||
// restrictions imposed by VirtualRegisterGroup and any other registers
|
||||
// already grouped with reg0 or reg1.
|
||||
BacktrackingVirtualRegister* reg0 = &vregs[vreg0], *reg1 = &vregs[vreg1];
|
||||
BacktrackingVirtualRegister* reg0 = &vregs[vreg0];
|
||||
BacktrackingVirtualRegister* reg1 = &vregs[vreg1];
|
||||
|
||||
if (!reg0->isCompatibleVReg(*reg1))
|
||||
return true;
|
||||
@ -215,7 +217,8 @@ BacktrackingAllocator::tryGroupRegisters(uint32_t vreg0, uint32_t vreg1)
|
||||
}
|
||||
}
|
||||
|
||||
VirtualRegisterGroup* group0 = reg0->group(), *group1 = reg1->group();
|
||||
VirtualRegisterGroup* group0 = reg0->group();
|
||||
VirtualRegisterGroup* group1 = reg1->group();
|
||||
|
||||
if (!group0 && group1)
|
||||
return tryGroupRegisters(vreg1, vreg0);
|
||||
@ -262,7 +265,8 @@ BacktrackingAllocator::tryGroupRegisters(uint32_t vreg0, uint32_t vreg1)
|
||||
bool
|
||||
BacktrackingAllocator::tryGroupReusedRegister(uint32_t def, uint32_t use)
|
||||
{
|
||||
BacktrackingVirtualRegister& reg = vregs[def], &usedReg = vregs[use];
|
||||
BacktrackingVirtualRegister& reg = vregs[def];
|
||||
BacktrackingVirtualRegister& usedReg = vregs[use];
|
||||
|
||||
// reg is a vreg which reuses its input usedReg for its output physical
|
||||
// register. Try to group reg with usedReg if at all possible, as avoiding
|
||||
@ -1914,7 +1918,8 @@ BacktrackingAllocator::trySplitAcrossHotcode(LiveInterval* interval, bool* succe
|
||||
}
|
||||
|
||||
LiveInterval* hotInterval = LiveInterval::New(alloc(), interval->vreg(), 0);
|
||||
LiveInterval* preInterval = nullptr, *postInterval = nullptr;
|
||||
LiveInterval* preInterval = nullptr;
|
||||
LiveInterval* postInterval = nullptr;
|
||||
|
||||
// Accumulate the ranges of hot and cold code in the interval. Note that
|
||||
// we are only comparing with the single hot range found, so the cold code
|
||||
|
@ -75,7 +75,8 @@ class DebugModeOSRVolatileStub
|
||||
//
|
||||
class DebugModeOSRVolatileJitFrameIterator : public JitFrameIterator
|
||||
{
|
||||
DebugModeOSRVolatileJitFrameIterator** stack, *prev;
|
||||
DebugModeOSRVolatileJitFrameIterator** stack;
|
||||
DebugModeOSRVolatileJitFrameIterator* prev;
|
||||
|
||||
public:
|
||||
explicit DebugModeOSRVolatileJitFrameIterator(JSContext* cx)
|
||||
|
@ -256,7 +256,8 @@ CanUseInt32Compare(ICStub::Kind kind)
|
||||
MCompare::CompareType
|
||||
BaselineInspector::expectedCompareType(jsbytecode* pc)
|
||||
{
|
||||
ICStub* first = monomorphicStub(pc), *second = nullptr;
|
||||
ICStub* first = monomorphicStub(pc);
|
||||
ICStub* second = nullptr;
|
||||
if (!first && !dimorphicStub(pc, &first, &second))
|
||||
return MCompare::Compare_Unknown;
|
||||
|
||||
|
@ -186,7 +186,8 @@ CodeGenerator::visitValueToInt32(LValueToInt32* lir)
|
||||
|
||||
// We can only handle strings in truncation contexts, like bitwise
|
||||
// operations.
|
||||
Label* stringEntry, *stringRejoin;
|
||||
Label* stringEntry;
|
||||
Label* stringRejoin;
|
||||
Register stringReg;
|
||||
if (input->mightBeType(MIRType_String)) {
|
||||
stringReg = ToRegister(lir->temp());
|
||||
@ -8958,7 +8959,8 @@ CodeGenerator::visitClampVToUint8(LClampVToUint8* lir)
|
||||
Register output = ToRegister(lir->output());
|
||||
MDefinition* input = lir->mir()->input();
|
||||
|
||||
Label* stringEntry, *stringRejoin;
|
||||
Label* stringEntry;
|
||||
Label* stringRejoin;
|
||||
if (input->mightBeType(MIRType_String)) {
|
||||
OutOfLineCode* oolString = oolCallVM(StringToNumberInfo, lir, (ArgList(), output),
|
||||
StoreFloatRegisterTo(tempFloat));
|
||||
|
@ -1041,10 +1041,8 @@ IonScript::getSafepointIndex(uint32_t disp) const
|
||||
const OsiIndex*
|
||||
IonScript::getOsiIndex(uint32_t disp) const
|
||||
{
|
||||
for (const OsiIndex* it = osiIndices(), *end = osiIndices() + osiIndexEntries_;
|
||||
it != end;
|
||||
++it)
|
||||
{
|
||||
const OsiIndex* end = osiIndices() + osiIndexEntries_;
|
||||
for (const OsiIndex* it = osiIndices(); it != end; ++it) {
|
||||
if (it->returnPointDisplacement() == disp)
|
||||
return it;
|
||||
}
|
||||
|
@ -595,7 +595,8 @@ IonBuilder::analyzeNewLoopTypes(MBasicBlock* entry, jsbytecode* start, jsbytecod
|
||||
}
|
||||
loopHeaders_.append(LoopHeader(start, entry));
|
||||
|
||||
jsbytecode* last = nullptr, *earlier = nullptr;
|
||||
jsbytecode* last = nullptr;
|
||||
jsbytecode* earlier = nullptr;
|
||||
for (jsbytecode* pc = start; pc != end; earlier = last, last = pc, pc += GetBytecodeLength(pc)) {
|
||||
uint32_t slot;
|
||||
if (*pc == JSOP_SETLOCAL)
|
||||
@ -2577,7 +2578,8 @@ IonBuilder::processForUpdateEnd(CFGState& state)
|
||||
IonBuilder::DeferredEdge*
|
||||
IonBuilder::filterDeadDeferredEdges(DeferredEdge* edge)
|
||||
{
|
||||
DeferredEdge* head = edge, *prev = nullptr;
|
||||
DeferredEdge* head = edge;
|
||||
DeferredEdge* prev = nullptr;
|
||||
|
||||
while (edge) {
|
||||
if (edge->block->isDead()) {
|
||||
@ -7931,7 +7933,8 @@ IonBuilder::pushScalarLoadFromTypedObject(MDefinition* obj,
|
||||
MOZ_ASSERT(size == ScalarTypeDescr::alignment(elemType));
|
||||
|
||||
// Find location within the owner object.
|
||||
MDefinition* elements, *scaledOffset;
|
||||
MDefinition* elements;
|
||||
MDefinition* scaledOffset;
|
||||
int32_t adjustment;
|
||||
loadTypedObjectElements(obj, byteOffset, size, &elements, &scaledOffset, &adjustment);
|
||||
|
||||
@ -7970,7 +7973,8 @@ IonBuilder::pushReferenceLoadFromTypedObject(MDefinition* typedObj,
|
||||
PropertyName* name)
|
||||
{
|
||||
// Find location within the owner object.
|
||||
MDefinition* elements, *scaledOffset;
|
||||
MDefinition* elements;
|
||||
MDefinition* scaledOffset;
|
||||
int32_t adjustment;
|
||||
size_t alignment = ReferenceTypeDescr::alignment(type);
|
||||
loadTypedObjectElements(typedObj, byteOffset, alignment, &elements, &scaledOffset, &adjustment);
|
||||
@ -12748,7 +12752,8 @@ IonBuilder::storeScalarTypedObjectValue(MDefinition* typedObj,
|
||||
MDefinition* value)
|
||||
{
|
||||
// Find location within the owner object.
|
||||
MDefinition* elements, *scaledOffset;
|
||||
MDefinition* elements;
|
||||
MDefinition* scaledOffset;
|
||||
int32_t adjustment;
|
||||
size_t alignment = ScalarTypeDescr::alignment(type);
|
||||
loadTypedObjectElements(typedObj, byteOffset, alignment, &elements, &scaledOffset, &adjustment);
|
||||
@ -12792,7 +12797,8 @@ IonBuilder::storeReferenceTypedObjectValue(MDefinition* typedObj,
|
||||
}
|
||||
|
||||
// Find location within the owner object.
|
||||
MDefinition* elements, *scaledOffset;
|
||||
MDefinition* elements;
|
||||
MDefinition* scaledOffset;
|
||||
int32_t adjustment;
|
||||
size_t alignment = ReferenceTypeDescr::alignment(type);
|
||||
loadTypedObjectElements(typedObj, byteOffset, alignment, &elements, &scaledOffset, &adjustment);
|
||||
|
@ -1030,7 +1030,9 @@ class IonBuilder
|
||||
return analysis_;
|
||||
}
|
||||
|
||||
TemporaryTypeSet* thisTypes, *argTypes, *typeArray;
|
||||
TemporaryTypeSet* thisTypes;
|
||||
TemporaryTypeSet* argTypes;
|
||||
TemporaryTypeSet* typeArray;
|
||||
uint32_t typeArrayHint;
|
||||
uint32_t* bytecodeTypeMap;
|
||||
|
||||
|
@ -28,15 +28,18 @@ struct LoopUnroller
|
||||
TempAllocator& alloc;
|
||||
|
||||
// Header and body of the original loop.
|
||||
MBasicBlock* header, *backedge;
|
||||
MBasicBlock* header;
|
||||
MBasicBlock* backedge;
|
||||
|
||||
// Header and body of the unrolled loop.
|
||||
MBasicBlock* unrolledHeader, *unrolledBackedge;
|
||||
MBasicBlock* unrolledHeader;
|
||||
MBasicBlock* unrolledBackedge;
|
||||
|
||||
// Old and new preheaders. The old preheader starts out associated with the
|
||||
// original loop, but becomes the preheader of the new loop. The new
|
||||
// preheader will be given to the original loop.
|
||||
MBasicBlock* oldPreheader, *newPreheader;
|
||||
MBasicBlock* oldPreheader;
|
||||
MBasicBlock* newPreheader;
|
||||
|
||||
// Map terms in the original loop to terms in the current unrolled iteration.
|
||||
DefinitionMap unrolledDefinitions;
|
||||
|
@ -1553,8 +1553,8 @@ MPhi::removeOperand(size_t index)
|
||||
void
|
||||
MPhi::removeAllOperands()
|
||||
{
|
||||
for (MUse* p = inputs_.begin(), *e = inputs_.end(); p < e; ++p)
|
||||
p->producer()->removeUse(p);
|
||||
for (MUse& p : inputs_)
|
||||
p.producer()->removeUse(&p);
|
||||
inputs_.clear();
|
||||
}
|
||||
|
||||
@ -2779,7 +2779,8 @@ MustBeUInt32(MDefinition* def, MDefinition** pwrapped)
|
||||
bool
|
||||
MBinaryInstruction::tryUseUnsignedOperands()
|
||||
{
|
||||
MDefinition* newlhs, *newrhs;
|
||||
MDefinition* newlhs;
|
||||
MDefinition* newrhs;
|
||||
if (MustBeUInt32(getOperand(0), &newlhs) && MustBeUInt32(getOperand(1), &newrhs)) {
|
||||
if (newlhs->type() != MIRType_Int32 || newrhs->type() != MIRType_Int32)
|
||||
return false;
|
||||
|
@ -990,8 +990,8 @@ MBasicBlock::discardPhi(MPhi* phi)
|
||||
phis_.remove(phi);
|
||||
|
||||
if (phis_.empty()) {
|
||||
for (MBasicBlock** pred = predecessors_.begin(), **end = predecessors_.end(); pred < end; ++pred)
|
||||
(*pred)->clearSuccessorWithPhis();
|
||||
for (MBasicBlock* pred : predecessors_)
|
||||
pred->clearSuccessorWithPhis();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -602,7 +602,8 @@ GetDynamicName(JSContext* cx, JSObject* scopeChain, JSString* str, Value* vp)
|
||||
}
|
||||
|
||||
Shape* shape = nullptr;
|
||||
JSObject* scope = nullptr, *pobj = nullptr;
|
||||
JSObject* scope = nullptr;
|
||||
JSObject* pobj = nullptr;
|
||||
if (LookupNameNoGC(cx, atom->asPropertyName(), scopeChain, &scope, &pobj, &shape)) {
|
||||
if (FetchNameNoGC(pobj, shape, MutableHandleValue::fromMarkedLocation(vp)))
|
||||
return;
|
||||
|
@ -342,7 +342,8 @@ CodeGeneratorShared::encodeAllocation(LSnapshot* snapshot, MDefinition* mir,
|
||||
MOZ_ASSERT(mir->isRecoveredOnBailout());
|
||||
uint32_t index = 0;
|
||||
LRecoverInfo* recoverInfo = snapshot->recoverInfo();
|
||||
MNode** it = recoverInfo->begin(), **end = recoverInfo->end();
|
||||
MNode** it = recoverInfo->begin();
|
||||
MNode** end = recoverInfo->end();
|
||||
while (it != end && mir != *it) {
|
||||
++it;
|
||||
++index;
|
||||
@ -487,8 +488,8 @@ CodeGeneratorShared::encode(LRecoverInfo* recover)
|
||||
|
||||
RecoverOffset offset = recovers_.startRecover(numInstructions, resumeAfter);
|
||||
|
||||
for (MNode** it = recover->begin(), **end = recover->end(); it != end; ++it)
|
||||
recovers_.writeInstruction(*it);
|
||||
for (MNode* insn : *recover)
|
||||
recovers_.writeInstruction(insn);
|
||||
|
||||
recovers_.endRecover();
|
||||
recover->setRecoverOffset(offset);
|
||||
@ -572,18 +573,15 @@ CodeGeneratorShared::assignBailoutId(LSnapshot* snapshot)
|
||||
void
|
||||
CodeGeneratorShared::encodeSafepoints()
|
||||
{
|
||||
for (SafepointIndex* it = safepointIndices_.begin(), *end = safepointIndices_.end();
|
||||
it != end;
|
||||
++it)
|
||||
{
|
||||
LSafepoint* safepoint = it->safepoint();
|
||||
for (SafepointIndex& index : safepointIndices_) {
|
||||
LSafepoint* safepoint = index.safepoint();
|
||||
|
||||
if (!safepoint->encoded()) {
|
||||
safepoint->fixupOffset(&masm);
|
||||
safepoints_.encode(safepoint);
|
||||
}
|
||||
|
||||
it->resolve();
|
||||
index.resolve();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -620,7 +620,9 @@ js::ExpandErrorArgumentsVA(ExclusiveContext* cx, JSErrorCallback callback,
|
||||
*/
|
||||
if (argCount > 0) {
|
||||
if (efs->format) {
|
||||
char16_t* buffer, *fmt, *out;
|
||||
char16_t* buffer;
|
||||
char16_t* fmt;
|
||||
char16_t* out;
|
||||
int expandedArgs = 0;
|
||||
size_t expandedLength;
|
||||
size_t len = strlen(efs->format);
|
||||
|
@ -248,7 +248,8 @@ static uint32_t quorem2(Bigint* b, int32_t k)
|
||||
{
|
||||
ULong mask;
|
||||
ULong result;
|
||||
ULong* bx, *bxe;
|
||||
ULong* bx;
|
||||
ULong* bxe;
|
||||
int32_t w;
|
||||
int32_t n = k >> 5;
|
||||
k &= 0x1F;
|
||||
@ -365,9 +366,10 @@ js_dtobasestr(DtoaState* state, int base, double dinput)
|
||||
/* We have a fraction. */
|
||||
int e, bbits;
|
||||
int32_t s2, done;
|
||||
Bigint* b, *s, *mlo, *mhi;
|
||||
|
||||
b = s = mlo = mhi = nullptr;
|
||||
Bigint* b = nullptr;
|
||||
Bigint* s = nullptr;
|
||||
Bigint* mlo = nullptr;
|
||||
Bigint* mhi = nullptr;
|
||||
|
||||
*p++ = '.';
|
||||
b = d2b(PASS_STATE df, &e, &bbits);
|
||||
|
@ -2599,8 +2599,8 @@ GCRuntime::updatePointersToRelocatedCells(Zone* zone)
|
||||
void
|
||||
GCRuntime::protectRelocatedArenas()
|
||||
{
|
||||
for (ArenaHeader* arena = relocatedArenasToRelease, *next; arena; arena = next) {
|
||||
next = arena->next;
|
||||
for (ArenaHeader* arena = relocatedArenasToRelease; arena; ) {
|
||||
ArenaHeader* next = arena->next;
|
||||
#if defined(XP_WIN)
|
||||
DWORD oldProtect;
|
||||
if (!VirtualProtect(arena, ArenaSize, PAGE_NOACCESS, &oldProtect))
|
||||
@ -2609,6 +2609,7 @@ GCRuntime::protectRelocatedArenas()
|
||||
if (mprotect(arena, ArenaSize, PROT_NONE))
|
||||
MOZ_CRASH();
|
||||
#endif
|
||||
arena = next;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1058,7 +1058,9 @@ js::InitRuntimeNumberState(JSRuntime* rt)
|
||||
// change its return type.
|
||||
#if !EXPOSE_INTL_API
|
||||
/* Copy locale-specific separators into the runtime strings. */
|
||||
const char* thousandsSeparator, *decimalPoint, *grouping;
|
||||
const char* thousandsSeparator;
|
||||
const char* decimalPoint;
|
||||
const char* grouping;
|
||||
#ifdef HAVE_LOCALECONV
|
||||
struct lconv* locale = localeconv();
|
||||
thousandsSeparator = locale->thousands_sep;
|
||||
|
@ -726,9 +726,6 @@ DisassembleAtPC(JSContext* cx, JSScript* scriptArg, bool lines,
|
||||
RootedScript script(cx, scriptArg);
|
||||
BytecodeParser parser(cx, script);
|
||||
|
||||
jsbytecode* next, *end;
|
||||
unsigned len;
|
||||
|
||||
if (showAll && !parser.parse())
|
||||
return false;
|
||||
|
||||
@ -753,8 +750,8 @@ DisassembleAtPC(JSContext* cx, JSScript* scriptArg, bool lines,
|
||||
sp->put("----");
|
||||
sp->put(" --\n");
|
||||
|
||||
next = script->code();
|
||||
end = script->codeEnd();
|
||||
jsbytecode* next = script->code();
|
||||
jsbytecode* end = script->codeEnd();
|
||||
while (next < end) {
|
||||
if (next == script->main())
|
||||
sp->put("main:\n");
|
||||
@ -783,7 +780,7 @@ DisassembleAtPC(JSContext* cx, JSScript* scriptArg, bool lines,
|
||||
else
|
||||
Sprint(sp, " ");
|
||||
}
|
||||
len = Disassemble1(cx, script, next, script->pcToOffset(next), lines, sp);
|
||||
unsigned len = Disassemble1(cx, script, next, script->pcToOffset(next), lines, sp);
|
||||
if (!len)
|
||||
return false;
|
||||
next += len;
|
||||
|
@ -111,7 +111,8 @@ class BytecodeRange {
|
||||
|
||||
private:
|
||||
RootedScript script;
|
||||
jsbytecode* pc, *end;
|
||||
jsbytecode* pc;
|
||||
jsbytecode* end;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -320,8 +320,8 @@ Bindings::trace(JSTracer* trc)
|
||||
if (bindingArrayUsingTemporaryStorage())
|
||||
return;
|
||||
|
||||
for (Binding* b = bindingArray(), *end = b + count(); b != end; b++) {
|
||||
PropertyName* name = b->name();
|
||||
for (const Binding& b : *this) {
|
||||
PropertyName* name = b.name();
|
||||
MarkStringUnbarriered(trc, &name, "bindingArray");
|
||||
}
|
||||
}
|
||||
|
@ -314,6 +314,9 @@ class Bindings
|
||||
return !callObjShape_->isEmptyShape();
|
||||
}
|
||||
|
||||
Binding* begin() const { return bindingArray(); }
|
||||
Binding* end() const { return bindingArray() + count(); }
|
||||
|
||||
static js::ThingRootKind rootKind() { return js::THING_ROOT_BINDINGS; }
|
||||
void trace(JSTracer* trc);
|
||||
};
|
||||
@ -1781,7 +1784,9 @@ class BindingIter
|
||||
*/
|
||||
class AliasedFormalIter
|
||||
{
|
||||
const Binding* begin_, *p_, *end_;
|
||||
const Binding* begin_;
|
||||
const Binding* p_;
|
||||
const Binding* end_;
|
||||
unsigned slot_;
|
||||
|
||||
void settle() {
|
||||
@ -1809,7 +1814,7 @@ class LazyScript : public gc::TenuredCell
|
||||
public:
|
||||
class FreeVariable
|
||||
{
|
||||
// Free variable names are possible tagged JSAtom* s.
|
||||
// Variable name is stored as a tagged JSAtom pointer.
|
||||
uintptr_t bits_;
|
||||
|
||||
static const uintptr_t HOISTED_USE_BIT = 0x1;
|
||||
|
@ -1239,7 +1239,8 @@ StringMatch(const TextChar* text, uint32_t textLen, const PatChar* pat, uint32_t
|
||||
*/
|
||||
if (patLen == 1) {
|
||||
const PatChar p0 = *pat;
|
||||
for (const TextChar* c = text, *end = text + textLen; c != end; ++c) {
|
||||
const TextChar* end = text + textLen;
|
||||
for (const TextChar* c = text; c != end; ++c) {
|
||||
if (*c == p0)
|
||||
return c - text;
|
||||
}
|
||||
|
@ -169,10 +169,10 @@
|
||||
** Macros to get the number of elements and the pointer to one past the
|
||||
** last element of a C array. Use them like this:
|
||||
**
|
||||
** char16_t buf[10], *s;
|
||||
** char16_t buf[10];
|
||||
** JSString* str;
|
||||
** ...
|
||||
** for (s = buf; s != JS_ARRAY_END(buf); ++s) *s = ...;
|
||||
** for (char16_t* s = buf; s != JS_ARRAY_END(buf); ++s) *s = ...;
|
||||
** ...
|
||||
** str = JS_NewStringCopyN(cx, buf, JS_ARRAY_LENGTH(buf));
|
||||
** ...
|
||||
|
@ -110,8 +110,8 @@ void
|
||||
WeakMapBase::sweepCompartment(JSCompartment* c)
|
||||
{
|
||||
WeakMapBase** tailPtr = &c->gcWeakMapList;
|
||||
for (WeakMapBase* m = c->gcWeakMapList, *next; m; m = next) {
|
||||
next = m->next;
|
||||
for (WeakMapBase* m = c->gcWeakMapList; m; ) {
|
||||
WeakMapBase* next = m->next;
|
||||
if (m->marked) {
|
||||
m->sweep();
|
||||
*tailPtr = m;
|
||||
@ -121,6 +121,7 @@ WeakMapBase::sweepCompartment(JSCompartment* c)
|
||||
m->finish();
|
||||
m->next = WeakMapNotInList;
|
||||
}
|
||||
m = next;
|
||||
}
|
||||
*tailPtr = nullptr;
|
||||
|
||||
|
@ -580,10 +580,8 @@ js::RemapAllWrappersForObject(JSContext* cx, JSObject* oldTargetArg,
|
||||
}
|
||||
}
|
||||
|
||||
for (WrapperValue* begin = toTransplant.begin(), *end = toTransplant.end();
|
||||
begin != end; ++begin)
|
||||
{
|
||||
if (!RemapWrapper(cx, &begin->toObject(), newTarget))
|
||||
for (const WrapperValue& v : toTransplant) {
|
||||
if (!RemapWrapper(cx, &v.toObject(), newTarget))
|
||||
MOZ_CRASH();
|
||||
}
|
||||
|
||||
@ -619,9 +617,8 @@ js::RecomputeWrappers(JSContext* cx, const CompartmentFilter& sourceFilter,
|
||||
}
|
||||
|
||||
// Recompute all the wrappers in the list.
|
||||
for (WrapperValue* begin = toRecompute.begin(), *end = toRecompute.end(); begin != end; ++begin)
|
||||
{
|
||||
JSObject* wrapper = &begin->toObject();
|
||||
for (const WrapperValue& v : toRecompute) {
|
||||
JSObject* wrapper = &v.toObject();
|
||||
JSObject* wrapped = Wrapper::wrappedObject(wrapper);
|
||||
if (!RemapWrapper(cx, wrapper, wrapped))
|
||||
MOZ_CRASH();
|
||||
|
@ -2189,13 +2189,11 @@ static const char* const TryNoteNames[] = { "catch", "finally", "for-in", "for-o
|
||||
static bool
|
||||
TryNotes(JSContext* cx, HandleScript script, Sprinter* sp)
|
||||
{
|
||||
JSTryNote* tn, *tnlimit;
|
||||
|
||||
if (!script->hasTrynotes())
|
||||
return true;
|
||||
|
||||
tn = script->trynotes()->vector;
|
||||
tnlimit = tn + script->trynotes()->length;
|
||||
JSTryNote* tn = script->trynotes()->vector;
|
||||
JSTryNote* tnlimit = tn + script->trynotes()->length;
|
||||
Sprint(sp, "\nException table:\nkind stack start end\n");
|
||||
do {
|
||||
MOZ_ASSERT(tn->kind < ArrayLength(TryNoteNames));
|
||||
@ -2407,7 +2405,6 @@ DisassWithSrc(JSContext* cx, unsigned argc, jsval* vp)
|
||||
unsigned len, line1, line2, bupline;
|
||||
FILE* file;
|
||||
char linebuf[LINE_BUF_LEN];
|
||||
jsbytecode* pc, *end;
|
||||
static const char sep[] = ";-------------------------";
|
||||
|
||||
bool ok = true;
|
||||
@ -2431,8 +2428,8 @@ DisassWithSrc(JSContext* cx, unsigned argc, jsval* vp)
|
||||
return false;
|
||||
}
|
||||
|
||||
pc = script->code();
|
||||
end = script->codeEnd();
|
||||
jsbytecode* pc = script->code();
|
||||
jsbytecode* end = script->codeEnd();
|
||||
|
||||
Sprinter sprinter(cx);
|
||||
if (!sprinter.init()) {
|
||||
|
@ -194,11 +194,10 @@ OptionParser::printHelp(const char* progname)
|
||||
static const char fmt[] = " %s ";
|
||||
size_t fmtChars = sizeof(fmt) - 2;
|
||||
size_t lhsLen = 0;
|
||||
for (Option** it = arguments.begin(), **end = arguments.end(); it != end; ++it)
|
||||
lhsLen = Max(lhsLen, strlen((*it)->longflag) + fmtChars);
|
||||
for (Option* arg : arguments)
|
||||
lhsLen = Max(lhsLen, strlen(arg->longflag) + fmtChars);
|
||||
|
||||
for (Option** it = arguments.begin(), **end = arguments.end(); it != end; ++it) {
|
||||
Option* arg = *it;
|
||||
for (Option* arg : arguments) {
|
||||
size_t chars = printf(fmt, arg->longflag);
|
||||
for (; chars < lhsLen; ++chars)
|
||||
putchar(' ');
|
||||
@ -213,8 +212,7 @@ OptionParser::printHelp(const char* progname)
|
||||
|
||||
/* Calculate sizes for column alignment. */
|
||||
size_t lhsLen = 0;
|
||||
for (Option** it = options.begin(), **end = options.end(); it != end; ++it) {
|
||||
Option* opt = *it;
|
||||
for (Option* opt : options) {
|
||||
size_t longflagLen = strlen(opt->longflag);
|
||||
|
||||
size_t fmtLen;
|
||||
@ -227,8 +225,7 @@ OptionParser::printHelp(const char* progname)
|
||||
}
|
||||
|
||||
/* Print option help text. */
|
||||
for (Option** it = options.begin(), **end = options.end(); it != end; ++it) {
|
||||
Option* opt = *it;
|
||||
for (Option* opt : options) {
|
||||
size_t fmtLen;
|
||||
const char* fmt = OptionFlagsToFormatInfo(opt->shortflag, opt->isValued(), &fmtLen);
|
||||
size_t chars;
|
||||
@ -469,18 +466,18 @@ OptionParser::getMultiStringOption(const char* longflag) const
|
||||
|
||||
OptionParser::~OptionParser()
|
||||
{
|
||||
for (Option** it = options.begin(), **end = options.end(); it != end; ++it)
|
||||
js_delete<Option>(*it);
|
||||
for (Option** it = arguments.begin(), **end = arguments.end(); it != end; ++it)
|
||||
js_delete<Option>(*it);
|
||||
for (Option* opt : options)
|
||||
js_delete<Option>(opt);
|
||||
for (Option* arg : arguments)
|
||||
js_delete<Option>(arg);
|
||||
}
|
||||
|
||||
Option*
|
||||
OptionParser::findOption(char shortflag)
|
||||
{
|
||||
for (Option** it = options.begin(), **end = options.end(); it != end; ++it) {
|
||||
if ((*it)->shortflag == shortflag)
|
||||
return *it;
|
||||
for (Option* opt : options) {
|
||||
if (opt->shortflag == shortflag)
|
||||
return opt;
|
||||
}
|
||||
|
||||
if (versionOption.shortflag == shortflag)
|
||||
@ -498,9 +495,9 @@ OptionParser::findOption(char shortflag) const
|
||||
Option*
|
||||
OptionParser::findOption(const char* longflag)
|
||||
{
|
||||
for (Option** it = options.begin(), **end = options.end(); it != end; ++it) {
|
||||
const char* target = (*it)->longflag;
|
||||
if ((*it)->isValued()) {
|
||||
for (Option* opt : options) {
|
||||
const char* target = opt->longflag;
|
||||
if (opt->isValued()) {
|
||||
size_t targetLen = strlen(target);
|
||||
/* Permit a trailing equals sign on the longflag argument. */
|
||||
for (size_t i = 0; i < targetLen; ++i) {
|
||||
@ -508,10 +505,10 @@ OptionParser::findOption(const char* longflag)
|
||||
goto no_match;
|
||||
}
|
||||
if (longflag[targetLen] == '\0' || longflag[targetLen] == '=')
|
||||
return *it;
|
||||
return opt;
|
||||
} else {
|
||||
if (strcmp(target, longflag) == 0)
|
||||
return *it;
|
||||
return opt;
|
||||
}
|
||||
no_match:;
|
||||
}
|
||||
|
@ -137,7 +137,8 @@ struct CopyScriptFrameIterArgs
|
||||
MOZ_ASSERT(Max(numActuals, numFormals) == totalArgs);
|
||||
|
||||
if (numActuals < numFormals) {
|
||||
HeapValue* dst = dstBase + numActuals, *dstEnd = dstBase + totalArgs;
|
||||
HeapValue* dst = dstBase + numActuals;
|
||||
HeapValue* dstEnd = dstBase + totalArgs;
|
||||
while (dst != dstEnd)
|
||||
(dst++)->init(UndefinedValue());
|
||||
}
|
||||
|
@ -4164,7 +4164,9 @@ Debugger::drainTraceLoggerScriptCalls(JSContext* cx, unsigned argc, Value* vp)
|
||||
return false;
|
||||
|
||||
if (textId != TraceLogger_Stop) {
|
||||
const char* filename, *lineno, *colno;
|
||||
const char* filename;
|
||||
const char* lineno;
|
||||
const char* colno;
|
||||
size_t filename_len, lineno_len, colno_len;
|
||||
logger->extractScriptDetails(textId, &filename, &filename_len, &lineno, &lineno_len,
|
||||
&colno, &colno_len);
|
||||
|
@ -687,7 +687,8 @@ ProcessCallSiteObjOperation(JSContext* cx, RootedObject& cso, RootedObject& raw,
|
||||
if (!ToPrimitive(cx, JSTYPE_NUMBER, rhs)) \
|
||||
return false; \
|
||||
if (lhs.isString() && rhs.isString()) { \
|
||||
JSString* l = lhs.toString(), *r = rhs.toString(); \
|
||||
JSString* l = lhs.toString(); \
|
||||
JSString* r = rhs.toString(); \
|
||||
int32_t result; \
|
||||
if (!CompareStrings(cx, l, r, &result)) \
|
||||
return false; \
|
||||
|
@ -300,7 +300,8 @@ GetNameOperation(JSContext* cx, InterpreterFrame* fp, jsbytecode* pc, MutableHan
|
||||
obj = &obj->global();
|
||||
|
||||
Shape* shape = nullptr;
|
||||
JSObject* scope = nullptr, *pobj = nullptr;
|
||||
JSObject* scope = nullptr;
|
||||
JSObject* pobj = nullptr;
|
||||
if (LookupNameNoGC(cx, name, obj, &scope, &pobj, &shape)) {
|
||||
if (FetchNameNoGC(pobj, shape, vp))
|
||||
return CheckUninitializedLexical(cx, name, vp);
|
||||
@ -1504,7 +1505,7 @@ AddOperation(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, Muta
|
||||
|
||||
bool lIsString, rIsString;
|
||||
if ((lIsString = lhs.isString()) | (rIsString = rhs.isString())) {
|
||||
JSString* lstr, *rstr;
|
||||
JSString* lstr;
|
||||
if (lIsString) {
|
||||
lstr = lhs.toString();
|
||||
} else {
|
||||
@ -1512,6 +1513,8 @@ AddOperation(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, Muta
|
||||
if (!lstr)
|
||||
return false;
|
||||
}
|
||||
|
||||
JSString* rstr;
|
||||
if (rIsString) {
|
||||
rstr = rhs.toString();
|
||||
} else {
|
||||
@ -2448,7 +2451,8 @@ END_CASE(JSOP_ADD)
|
||||
|
||||
CASE(JSOP_SUB)
|
||||
{
|
||||
RootedValue& lval = rootValue0, &rval = rootValue1;
|
||||
RootedValue& lval = rootValue0;
|
||||
RootedValue& rval = rootValue1;
|
||||
lval = REGS.sp[-2];
|
||||
rval = REGS.sp[-1];
|
||||
MutableHandleValue res = REGS.stackHandleAt(-2);
|
||||
@ -2460,7 +2464,8 @@ END_CASE(JSOP_SUB)
|
||||
|
||||
CASE(JSOP_MUL)
|
||||
{
|
||||
RootedValue& lval = rootValue0, &rval = rootValue1;
|
||||
RootedValue& lval = rootValue0;
|
||||
RootedValue& rval = rootValue1;
|
||||
lval = REGS.sp[-2];
|
||||
rval = REGS.sp[-1];
|
||||
MutableHandleValue res = REGS.stackHandleAt(-2);
|
||||
@ -2472,7 +2477,8 @@ END_CASE(JSOP_MUL)
|
||||
|
||||
CASE(JSOP_DIV)
|
||||
{
|
||||
RootedValue& lval = rootValue0, &rval = rootValue1;
|
||||
RootedValue& lval = rootValue0;
|
||||
RootedValue& rval = rootValue1;
|
||||
lval = REGS.sp[-2];
|
||||
rval = REGS.sp[-1];
|
||||
MutableHandleValue res = REGS.stackHandleAt(-2);
|
||||
@ -2484,7 +2490,8 @@ END_CASE(JSOP_DIV)
|
||||
|
||||
CASE(JSOP_MOD)
|
||||
{
|
||||
RootedValue& lval = rootValue0, &rval = rootValue1;
|
||||
RootedValue& lval = rootValue0;
|
||||
RootedValue& rval = rootValue1;
|
||||
lval = REGS.sp[-2];
|
||||
rval = REGS.sp[-1];
|
||||
MutableHandleValue res = REGS.stackHandleAt(-2);
|
||||
@ -2601,7 +2608,8 @@ CASE(JSOP_TOID)
|
||||
* but we need to avoid the observable stringification the second time.
|
||||
* There must be an object value below the id, which will not be popped.
|
||||
*/
|
||||
RootedValue& objval = rootValue0, &idval = rootValue1;
|
||||
RootedValue& objval = rootValue0;
|
||||
RootedValue& idval = rootValue1;
|
||||
objval = REGS.sp[-2];
|
||||
idval = REGS.sp[-1];
|
||||
|
||||
|
@ -270,7 +270,8 @@ class TryNoteIter
|
||||
const InterpreterRegs& regs;
|
||||
RootedScript script; /* TryNotIter is always stack allocated. */
|
||||
uint32_t pcOffset;
|
||||
JSTryNote* tn, *tnEnd;
|
||||
JSTryNote* tn;
|
||||
JSTryNote* tnEnd;
|
||||
|
||||
void settle();
|
||||
|
||||
|
@ -163,7 +163,10 @@ js::NativeObject::initializeSlotRange(uint32_t start, uint32_t length)
|
||||
* No bounds check, as this is used when the object's shape does not
|
||||
* reflect its allocated slots (updateSlotsForSpan).
|
||||
*/
|
||||
HeapSlot* fixedStart, *fixedEnd, *slotsStart, *slotsEnd;
|
||||
HeapSlot* fixedStart;
|
||||
HeapSlot* fixedEnd;
|
||||
HeapSlot* slotsStart;
|
||||
HeapSlot* slotsEnd;
|
||||
getSlotRangeUnchecked(start, length, &fixedStart, &fixedEnd, &slotsStart, &slotsEnd);
|
||||
|
||||
uint32_t offset = start;
|
||||
@ -176,7 +179,10 @@ js::NativeObject::initializeSlotRange(uint32_t start, uint32_t length)
|
||||
void
|
||||
js::NativeObject::initSlotRange(uint32_t start, const Value* vector, uint32_t length)
|
||||
{
|
||||
HeapSlot* fixedStart, *fixedEnd, *slotsStart, *slotsEnd;
|
||||
HeapSlot* fixedStart;
|
||||
HeapSlot* fixedEnd;
|
||||
HeapSlot* slotsStart;
|
||||
HeapSlot* slotsEnd;
|
||||
getSlotRange(start, length, &fixedStart, &fixedEnd, &slotsStart, &slotsEnd);
|
||||
for (HeapSlot* sp = fixedStart; sp < fixedEnd; sp++)
|
||||
sp->init(this, HeapSlot::Slot, start++, *vector++);
|
||||
@ -188,7 +194,10 @@ void
|
||||
js::NativeObject::copySlotRange(uint32_t start, const Value* vector, uint32_t length)
|
||||
{
|
||||
JS::Zone* zone = this->zone();
|
||||
HeapSlot* fixedStart, *fixedEnd, *slotsStart, *slotsEnd;
|
||||
HeapSlot* fixedStart;
|
||||
HeapSlot* fixedEnd;
|
||||
HeapSlot* slotsStart;
|
||||
HeapSlot* slotsEnd;
|
||||
getSlotRange(start, length, &fixedStart, &fixedEnd, &slotsStart, &slotsEnd);
|
||||
for (HeapSlot* sp = fixedStart; sp < fixedEnd; sp++)
|
||||
sp->set(zone, this, HeapSlot::Slot, start++, *vector++);
|
||||
|
@ -506,7 +506,10 @@ class NativeObject : public JSObject
|
||||
|
||||
void invalidateSlotRange(uint32_t start, uint32_t length) {
|
||||
#ifdef DEBUG
|
||||
HeapSlot* fixedStart, *fixedEnd, *slotsStart, *slotsEnd;
|
||||
HeapSlot* fixedStart;
|
||||
HeapSlot* fixedEnd;
|
||||
HeapSlot* slotsStart;
|
||||
HeapSlot* slotsEnd;
|
||||
getSlotRange(start, length, &fixedStart, &fixedEnd, &slotsStart, &slotsEnd);
|
||||
Debug_SetSlotRangeToCrashOnTouch(fixedStart, fixedEnd);
|
||||
Debug_SetSlotRangeToCrashOnTouch(slotsStart, slotsEnd);
|
||||
|
@ -676,7 +676,9 @@ JSRuntime::getDefaultLocale()
|
||||
if (defaultLocale)
|
||||
return defaultLocale;
|
||||
|
||||
char* locale, *lang, *p;
|
||||
char* locale;
|
||||
char* lang;
|
||||
char* p;
|
||||
#ifdef HAVE_SETLOCALE
|
||||
locale = setlocale(LC_ALL, nullptr);
|
||||
#else
|
||||
|
@ -790,7 +790,10 @@ NativeObject::putProperty(ExclusiveContext* cx, HandleNativeObject obj, HandleId
|
||||
if (!updateLast && !obj->generateOwnShape(cx))
|
||||
return nullptr;
|
||||
|
||||
/* FIXME bug 593129 -- slot allocation and JSObject* this must move out of here! */
|
||||
/*
|
||||
* FIXME bug 593129 -- slot allocation and NativeObject *this must move
|
||||
* out of here!
|
||||
*/
|
||||
if (slot == SHAPE_INVALID_SLOT && !(attrs & JSPROP_SHARED)) {
|
||||
if (!allocSlot(cx, obj, &slot))
|
||||
return nullptr;
|
||||
|
@ -109,7 +109,8 @@ SandboxDump(JSContext* cx, unsigned argc, jsval* vp)
|
||||
|
||||
#if defined(XP_MACOSX)
|
||||
// Be nice and convert all \r to \n.
|
||||
char* c = cstr, *cEnd = cstr + strlen(cstr);
|
||||
char* c = cstr;
|
||||
char* cEnd = cstr + strlen(cstr);
|
||||
while (c < cEnd) {
|
||||
if (*c == '\r')
|
||||
*c = '\n';
|
||||
|
@ -3231,7 +3231,8 @@ ReadSourceFromFilename(JSContext* cx, const char* filename, char16_t** src, size
|
||||
if (!buf)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
unsigned char* ptr = buf, *end = ptr + rawLen;
|
||||
unsigned char* ptr = buf;
|
||||
unsigned char* end = ptr + rawLen;
|
||||
while (ptr < end) {
|
||||
uint32_t bytesRead;
|
||||
rv = scriptStream->Read(reinterpret_cast<char*>(ptr), end - ptr, &bytesRead);
|
||||
|
@ -712,7 +712,9 @@ static bool
|
||||
env_enumerate(JSContext* cx, HandleObject obj)
|
||||
{
|
||||
static bool reflected;
|
||||
char** evp, *name, *value;
|
||||
char** evp;
|
||||
char* name;
|
||||
char* value;
|
||||
RootedString valstr(cx);
|
||||
bool ok;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user