More cleanup. Use our Noncopyable WTF class, add a root object member
to the Array class.
* bindings/c/c_class.h:
* bindings/jni/jni_class.h:
* bindings/jni/jni_instance.h:
* bindings/jni/jni_runtime.cpp:
(JavaArray::JavaArray):
* bindings/jni/jni_runtime.h:
* bindings/objc/objc_class.h:
* bindings/objc/objc_runtime.h:
* bindings/objc/objc_runtime.mm:
(ObjcArray::ObjcArray):
* bindings/objc/objc_utility.mm:
(KJS::Bindings::convertObjcValueToValue):
* bindings/runtime.cpp:
(KJS::Bindings::Array::Array):
(KJS::Bindings::Array::~Array):
* bindings/runtime.h:
* bindings/runtime_object.h:
* bindings/runtime_root.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@23467
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2007-06-12 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Darin and Maciej.
+
+ More cleanup. Use our Noncopyable WTF class, add a root object member
+ to the Array class.
+
+ * bindings/c/c_class.h:
+ * bindings/jni/jni_class.h:
+ * bindings/jni/jni_instance.h:
+ * bindings/jni/jni_runtime.cpp:
+ (JavaArray::JavaArray):
+ * bindings/jni/jni_runtime.h:
+ * bindings/objc/objc_class.h:
+ * bindings/objc/objc_runtime.h:
+ * bindings/objc/objc_runtime.mm:
+ (ObjcArray::ObjcArray):
+ * bindings/objc/objc_utility.mm:
+ (KJS::Bindings::convertObjcValueToValue):
+ * bindings/runtime.cpp:
+ (KJS::Bindings::Array::Array):
+ (KJS::Bindings::Array::~Array):
+ * bindings/runtime.h:
+ * bindings/runtime_object.h:
+ * bindings/runtime_root.h:
+
2007-06-08 Zack Rusin <zrusin@trolltech.com>
Fix the Qt build
virtual int numConstructors() const { return 0; }
private:
- CClass(const CClass&); // prohibit copying
- CClass& operator=(const CClass&); // prohibit assignment
-
NPClass* _isa;
mutable MethodMap _methods;
mutable FieldMap _fields;
private:
JavaClass (); // prevent default construction
- JavaClass (const JavaClass &other); // prevent copying
- JavaClass &operator=(const JavaClass &other); // prevent copying
const char *_name;
FieldMap _fields;
JSValue *booleanValue() const;
private:
- JavaInstance (JavaInstance &); // prevent copying
- JavaInstance &operator=(JavaInstance &); // prevent copying
-
RefPtr<JObjectWrapper> _instance;
mutable JavaClass *_class;
};
}
-JavaArray::JavaArray(jobject array, const char* type, PassRefPtr<RootObject> rootObject)
+JavaArray::JavaArray(jobject array, const char* type, PassRefPtr<RootObject> rootObject)
+ : Array(rootObject)
{
_array = new JObjectWrapper(array);
// Java array are fixed length, so we can cache length.
static JSValue* convertJObjectToArray (ExecState* exec, jobject anObject, const char* type, PassRefPtr<RootObject>);
private:
- JavaArray(const JavaArray&);
- JavaArray& operator=(const JavaArray&);
-
RefPtr<JObjectWrapper> _array;
unsigned int _length;
const char *_type;
- RefPtr<RootObject> _rootObject;
};
} // namespace Bindings
ClassStructPtr isa() { return _isa; }
private:
- ObjcClass(const ObjcClass &other); // prohibit copying
- ObjcClass &operator=(const ObjcClass &other); // ditto
-
ClassStructPtr _isa;
CFMutableDictionaryRef _methods;
CFMutableDictionaryRef _fields;
class ObjcArray : public Array
{
public:
- ObjcArray(ObjectStructPtr);
+ ObjcArray(ObjectStructPtr, PassRefPtr<RootObject>);
- ObjcArray(const ObjcArray &);
- ObjcArray &operator=(const ObjcArray &);
-
virtual ~ObjcArray();
virtual void setValueAt(ExecState *exec, unsigned int index, JSValue *aValue) const;
ObjectStructPtr _array;
};
-class ObjcFallbackObjectImp : public JSObject {
+class ObjcFallbackObjectImp : public JSObject, Noncopyable {
public:
ObjcFallbackObjectImp(ObjcInstance *i, const Identifier propertyName);
private:
ObjcFallbackObjectImp(); // prevent default construction
- ObjcFallbackObjectImp(const ObjcFallbackObjectImp& other); // prevent copying
- ObjcFallbackObjectImp& operator=(const ObjcFallbackObjectImp& other); // ditto
static const ClassInfo info;
// ---------------------- ObjcArray ----------------------
-ObjcArray::ObjcArray (ObjectStructPtr a)
+ObjcArray::ObjcArray(ObjectStructPtr a, PassRefPtr<RootObject> rootObject)
+ : Array(rootObject)
{
_array = (id)CFRetain(a);
}
CFRelease(_array);
}
-ObjcArray::ObjcArray (const ObjcArray &other) : Array()
-{
- _array = other._array;
- CFRetain(_array);
-}
-
-ObjcArray &ObjcArray::operator=(const ObjcArray &other)
-{
- ObjectStructPtr _oldArray = _array;
- _array = other._array;
- CFRetain(_array);
- CFRelease(_oldArray);
- return* this;
-}
-
void ObjcArray::setValueAt(ExecState* exec, unsigned int index, JSValue* aValue) const
{
if (![_array respondsToSelector:@selector(insertObject:atIndex:)]) {
if ([obj isKindOfClass:[NSNumber class]])
return jsNumber([obj doubleValue]);
if ([obj isKindOfClass:[NSArray class]])
- return new RuntimeArray(exec, new ObjcArray(obj));
+ return new RuntimeArray(exec, new ObjcArray(obj, 0));
if ([obj isKindOfClass:webScriptObjectClass()])
return [obj _imp];
if ([obj isKindOfClass:[NSNull class]])
return *this;
}
+Array::Array(PassRefPtr<RootObject> rootObject)
+ : _rootObject(rootObject)
+{
+}
+
+Array::~Array()
+{
+}
Instance::Instance(PassRefPtr<RootObject> rootObject)
: _rootObject(rootObject)
virtual ~Method() {}
};
-class Class
+class Class : Noncopyable
{
public:
virtual const char *name() const = 0;
unsigned _refCount;
};
-class Array
+class Array : Noncopyable
{
public:
+ Array(PassRefPtr<RootObject>);
+ virtual ~Array();
+
virtual void setValueAt(ExecState *, unsigned index, JSValue*) const = 0;
virtual JSValue* valueAt(ExecState *, unsigned index) const = 0;
virtual unsigned int getLength() const = 0;
- virtual ~Array() {}
+protected:
+ RefPtr<RootObject> _rootObject;
};
const char *signatureForParameters(const List&);
#include "runtime.h"
#include "object.h"
+#include <wtf/Noncopyable.h>
+
namespace KJS {
-class RuntimeObjectImp : public JSObject {
+class RuntimeObjectImp : public JSObject, Noncopyable {
public:
RuntimeObjectImp(Bindings::Instance *i);
private:
RuntimeObjectImp(); // prevent default construction
- RuntimeObjectImp(const RuntimeObjectImp& other); // prevent copying
- RuntimeObjectImp& operator=(const RuntimeObjectImp& other); // ditto
static JSValue *fallbackObjectGetter(ExecState *, JSObject *, const Identifier&, const PropertySlot&);
static JSValue *fieldGetter(ExecState *, JSObject *, const Identifier&, const PropertySlot&);
#endif
#include "protect.h"
+#include <wtf/Noncopyable.h>
+
namespace KJS {
namespace Bindings {
extern RootObject* findRootObject(JSObject*);
extern RootObject* findRootObject(Interpreter*);
-class RootObject
+class RootObject : Noncopyable
{
friend class JavaJSObject;
public:
RootObject(const void* nativeHandle, PassRefPtr<Interpreter> interpreter);
~RootObject();
- // Uncopyable
- RootObject(const RootObject&);
- RootObject& operator=(const RootObject&);
-
unsigned m_refCount;
bool m_isValid;