Ignore:
Timestamp:
Sep 18, 2012, 8:22:29 AM (13 years ago)
Author:
[email protected]
Message:

DFGOperations doesn't use NativeCallFrameTracer in enough places
https://bugs.webkit.org/show_bug.cgi?id=96987

Reviewed by Mark Hahnenberg.

Anything that can GC should use it.

  • dfg/DFGOperations.cpp:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp

    r128832 r128898  
    11941194EncodedJSValue DFG_OPERATION operationGetArgumentsLength(ExecState* exec, int32_t argumentsRegister)
    11951195{
     1196    JSGlobalData& globalData = exec->globalData();
     1197    NativeCallFrameTracer tracer(&globalData, exec);
    11961198    // Here we can assume that the argumernts were created. Because otherwise the JIT code would
    11971199    // have not made this call.
    1198     Identifier ident(&exec->globalData(), "length");
     1200    Identifier ident(&globalData, "length");
    11991201    JSValue baseValue = exec->uncheckedR(argumentsRegister).jsValue();
    12001202    PropertySlot slot(baseValue);
     
    12041206EncodedJSValue DFG_OPERATION operationGetArgumentByVal(ExecState* exec, int32_t argumentsRegister, int32_t index)
    12051207{
     1208    JSGlobalData& globalData = exec->globalData();
     1209    NativeCallFrameTracer tracer(&globalData, exec);
     1210
    12061211    JSValue argumentsValue = exec->uncheckedR(argumentsRegister).jsValue();
    12071212   
     
    12171222    ExecState* exec, int32_t argumentsRegister, InlineCallFrame* inlineCallFrame, int32_t index)
    12181223{
     1224    JSGlobalData& globalData = exec->globalData();
     1225    NativeCallFrameTracer tracer(&globalData, exec);
     1226
    12191227    JSValue argumentsValue = exec->uncheckedR(argumentsRegister).jsValue();
    12201228   
     
    12401248{
    12411249    ASSERT(functionExecutableAsCell->inherits(&FunctionExecutable::s_info));
     1250
     1251    JSGlobalData& globalData = exec->globalData();
     1252    NativeCallFrameTracer tracer(&globalData, exec);
     1253
    12421254    FunctionExecutable* functionExecutable =
    12431255        static_cast<FunctionExecutable*>(functionExecutableAsCell);
     
    12581270{
    12591271    JSGlobalData& globalData = exec->globalData();
     1272    NativeCallFrameTracer tracer(&globalData, exec);
     1273
    12601274    ASSERT(structure->outOfLineCapacity() > base->structure()->outOfLineCapacity());
    12611275    ASSERT(!globalData.heap.storageAllocator().fastPathShouldSucceed(structure->outOfLineCapacity() * sizeof(JSValue)));
     
    12661280char* DFG_OPERATION operationAllocatePropertyStorageWithInitialCapacity(ExecState* exec)
    12671281{
     1282    JSGlobalData& globalData = exec->globalData();
     1283    NativeCallFrameTracer tracer(&globalData, exec);
     1284
    12681285    return reinterpret_cast<char*>(
    1269         Butterfly::createUninitialized(exec->globalData(), 0, initialOutOfLineCapacity, false, 0));
     1286        Butterfly::createUninitialized(globalData, 0, initialOutOfLineCapacity, false, 0));
    12701287}
    12711288
    12721289char* DFG_OPERATION operationAllocatePropertyStorage(ExecState* exec, size_t newSize)
    12731290{
     1291    JSGlobalData& globalData = exec->globalData();
     1292    NativeCallFrameTracer tracer(&globalData, exec);
     1293
    12741294    return reinterpret_cast<char*>(
    1275         Butterfly::createUninitialized(exec->globalData(), 0, newSize, false, 0));
     1295        Butterfly::createUninitialized(globalData, 0, newSize, false, 0));
    12761296}
    12771297
    12781298char* DFG_OPERATION operationReallocateButterflyToHavePropertyStorageWithInitialCapacity(ExecState* exec, JSObject* object)
    12791299{
     1300    JSGlobalData& globalData = exec->globalData();
     1301    NativeCallFrameTracer tracer(&globalData, exec);
     1302
    12801303    ASSERT(!object->structure()->outOfLineCapacity());
    1281     Butterfly* result = object->growOutOfLineStorage(exec->globalData(), 0, initialOutOfLineCapacity);
     1304    Butterfly* result = object->growOutOfLineStorage(globalData, 0, initialOutOfLineCapacity);
    12821305    object->setButterflyWithoutChangingStructure(result);
    12831306    return reinterpret_cast<char*>(result);
     
    12861309char* DFG_OPERATION operationReallocateButterflyToGrowPropertyStorage(ExecState* exec, JSObject* object, size_t newSize)
    12871310{
    1288     Butterfly* result = object->growOutOfLineStorage(exec->globalData(), object->structure()->outOfLineCapacity(), newSize);
     1311    JSGlobalData& globalData = exec->globalData();
     1312    NativeCallFrameTracer tracer(&globalData, exec);
     1313
     1314    Butterfly* result = object->growOutOfLineStorage(globalData, object->structure()->outOfLineCapacity(), newSize);
    12891315    object->setButterflyWithoutChangingStructure(result);
    12901316    return reinterpret_cast<char*>(result);
Note: See TracChangeset for help on using the changeset viewer.