X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/4be4e30906bcb8ee30b4d189205cb70bad6707ce..81345200c95645a1b0d2635520f96ad55dfde63f:/runtime/JSSegmentedVariableObject.cpp diff --git a/runtime/JSSegmentedVariableObject.cpp b/runtime/JSSegmentedVariableObject.cpp index 01c0704..fba6f79 100644 --- a/runtime/JSSegmentedVariableObject.cpp +++ b/runtime/JSSegmentedVariableObject.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Apple Inc. All rights reserved. + * Copyright (C) 2012, 2013 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -10,7 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of + * 3. Neither the name of Apple Inc. ("Apple") nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * @@ -29,12 +29,14 @@ #include "config.h" #include "JSSegmentedVariableObject.h" -#include "Operations.h" +#include "JSCInlines.h" namespace JSC { int JSSegmentedVariableObject::findRegisterIndex(void* registerAddress) { + ConcurrentJITLocker locker(m_lock); + for (int i = m_registers.size(); i--;) { if (&m_registers[i] != registerAddress) continue; @@ -46,6 +48,8 @@ int JSSegmentedVariableObject::findRegisterIndex(void* registerAddress) int JSSegmentedVariableObject::addRegisters(int numberOfRegistersToAdd) { + ConcurrentJITLocker locker(m_lock); + ASSERT(numberOfRegistersToAdd >= 0); size_t oldSize = m_registers.size(); @@ -60,7 +64,7 @@ int JSSegmentedVariableObject::addRegisters(int numberOfRegistersToAdd) void JSSegmentedVariableObject::visitChildren(JSCell* cell, SlotVisitor& slotVisitor) { JSSegmentedVariableObject* thisObject = jsCast(cell); - ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); + ASSERT_GC_OBJECT_INHERITS(thisObject, info()); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); JSSymbolTableObject::visitChildren(thisObject, slotVisitor);