~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/3rdparty/webkit/WebCore/bridge/runtime.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2009-11-02 18:30:08 UTC
  • mfrom: (1.2.2 upstream)
  • mto: (15.2.5 experimental)
  • mto: This revision was merged to the branch mainline in revision 88.
  • Revision ID: james.westby@ubuntu.com-20091102183008-b6a4gcs128mvfb3m
Tags: upstream-4.6.0~beta1
ImportĀ upstreamĀ versionĀ 4.6.0~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
48
48
 
49
49
Instance::Instance(PassRefPtr<RootObject> rootObject)
50
50
    : _rootObject(rootObject)
 
51
    , m_runtimeObject(0)
51
52
{
52
53
    ASSERT(_rootObject);
53
54
}
54
55
 
55
56
Instance::~Instance()
56
57
{
 
58
    ASSERT(!m_runtimeObject);
57
59
}
58
60
 
59
61
static KJSDidExecuteFunctionPtr s_didExecuteFunction;
78
80
    virtualEnd();
79
81
}
80
82
 
81
 
JSValuePtr Instance::getValueOfField(ExecState* exec, const Field* aField) const
82
 
{
83
 
    return aField->valueFromInstance(exec, this);
84
 
}
85
 
 
86
 
void Instance::setValueOfField(ExecState* exec, const Field* aField, JSValuePtr aValue) const
87
 
{
88
 
    aField->setValueToInstance(exec, this, aValue);
89
 
}
90
 
 
91
 
RuntimeObjectImp* Instance::createRuntimeObject(ExecState* exec, PassRefPtr<Instance> instance)
92
 
{
93
 
#if PLATFORM(QT)
94
 
    if (instance->getBindingLanguage() == QtLanguage)
95
 
        return QtInstance::getRuntimeObject(exec, static_cast<QtInstance*>(instance.get()));
96
 
#endif
97
 
    JSLock lock(false);
98
 
 
99
 
    return new (exec) RuntimeObjectImp(exec, instance);
100
 
}
101
 
 
102
 
Instance* Instance::getInstance(JSObject* object, BindingLanguage language)
103
 
{
104
 
    if (!object)
105
 
        return 0;
106
 
    if (!object->inherits(&RuntimeObjectImp::s_info))
107
 
        return 0;
108
 
    Instance* instance = static_cast<RuntimeObjectImp*>(object)->getInternalInstance();
109
 
    if (!instance)
110
 
        return 0;
111
 
    if (instance->getBindingLanguage() != language)
112
 
        return 0;
113
 
    return instance;
 
83
RuntimeObjectImp* Instance::createRuntimeObject(ExecState* exec)
 
84
{
 
85
    ASSERT(_rootObject);
 
86
    ASSERT(_rootObject->isValid());
 
87
    if (m_runtimeObject)
 
88
        return m_runtimeObject;
 
89
    JSLock lock(SilenceAssertionsOnly);
 
90
    m_runtimeObject = newRuntimeObject(exec);
 
91
    _rootObject->addRuntimeObject(m_runtimeObject);
 
92
    return m_runtimeObject;
 
93
}
 
94
 
 
95
RuntimeObjectImp* Instance::newRuntimeObject(ExecState* exec)
 
96
{
 
97
    JSLock lock(SilenceAssertionsOnly);
 
98
    return new (exec) RuntimeObjectImp(exec, this);
 
99
}
 
100
 
 
101
void Instance::willDestroyRuntimeObject()
 
102
{
 
103
    ASSERT(_rootObject);
 
104
    ASSERT(_rootObject->isValid());
 
105
    ASSERT(m_runtimeObject);
 
106
    _rootObject->removeRuntimeObject(m_runtimeObject);
 
107
    m_runtimeObject = 0;
 
108
}
 
109
 
 
110
void Instance::willInvalidateRuntimeObject()
 
111
{
 
112
    ASSERT(m_runtimeObject);
 
113
    m_runtimeObject = 0;
114
114
}
115
115
 
116
116
RootObject* Instance::rootObject() const