| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved. |
| 3 * Copyright (C) 2007, 2008, 2009 Google, Inc. All rights reserved. | 3 * Copyright (C) 2007, 2008, 2009 Google, Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 static void freeV8NPObject(NPObject* npObject) | 73 static void freeV8NPObject(NPObject* npObject) |
| 74 { | 74 { |
| 75 V8NPObject* v8NpObject = reinterpret_cast<V8NPObject*>(npObject); | 75 V8NPObject* v8NpObject = reinterpret_cast<V8NPObject*>(npObject); |
| 76 v8::HandleScope scope; | 76 v8::HandleScope scope; |
| 77 ASSERT(!v8NpObject->v8Object->CreationContext().IsEmpty()); | 77 ASSERT(!v8NpObject->v8Object->CreationContext().IsEmpty()); |
| 78 if (V8PerContextData* perContextData = V8PerContextData::from(v8NpObject->v8
Object->CreationContext())) { | 78 if (V8PerContextData* perContextData = V8PerContextData::from(v8NpObject->v8
Object->CreationContext())) { |
| 79 V8NPObjectMap* v8NPObjectMap = perContextData->v8NPObjectMap(); | 79 V8NPObjectMap* v8NPObjectMap = perContextData->v8NPObjectMap(); |
| 80 int v8ObjectHash = v8NpObject->v8Object->GetIdentityHash(); | 80 int v8ObjectHash = v8NpObject->v8Object->GetIdentityHash(); |
| 81 ASSERT(v8ObjectHash); | 81 ASSERT(v8ObjectHash); |
| 82 V8NPObjectMap::iterator iter = v8NPObjectMap->find(v8ObjectHash); | 82 V8NPObjectMap::iterator iter = v8NPObjectMap->find(v8ObjectHash); |
| 83 ASSERT(iter != v8NPObjectMap->end()); | 83 if (iter != v8NPObjectMap->end()) { |
| 84 V8NPObjectVector& objects = iter->value; | 84 V8NPObjectVector& objects = iter->value; |
| 85 for (size_t index = 0; index < objects.size(); ++index) { | 85 for (size_t index = 0; index < objects.size(); ++index) { |
| 86 if (objects.at(index) == v8NpObject) { | 86 if (objects.at(index) == v8NpObject) { |
| 87 objects.remove(index); | 87 objects.remove(index); |
| 88 break; | 88 break; |
| 89 } |
| 89 } | 90 } |
| 91 if (objects.isEmpty()) |
| 92 v8NPObjectMap->remove(v8ObjectHash); |
| 90 } | 93 } |
| 91 if (objects.isEmpty()) | |
| 92 v8NPObjectMap->remove(v8ObjectHash); | |
| 93 } | 94 } |
| 94 v8NpObject->v8Object.Dispose(); | 95 v8NpObject->v8Object.Dispose(); |
| 95 free(v8NpObject); | 96 free(v8NpObject); |
| 96 } | 97 } |
| 97 | 98 |
| 98 static PassOwnArrayPtr<v8::Handle<v8::Value> > createValueListFromVariantArgs(co
nst NPVariant* arguments, uint32_t argumentCount, NPObject* owner) | 99 static PassOwnArrayPtr<v8::Handle<v8::Value> > createValueListFromVariantArgs(co
nst NPVariant* arguments, uint32_t argumentCount, NPObject* owner) |
| 99 { | 100 { |
| 100 OwnArrayPtr<v8::Handle<v8::Value> > argv = adoptArrayPtr(new v8::Handle<v8::
Value>[argumentCount]); | 101 OwnArrayPtr<v8::Handle<v8::Value> > argv = adoptArrayPtr(new v8::Handle<v8::
Value>[argumentCount]); |
| 101 for (uint32_t index = 0; index < argumentCount; index++) { | 102 for (uint32_t index = 0; index < argumentCount; index++) { |
| 102 const NPVariant* arg = &arguments[index]; | 103 const NPVariant* arg = &arguments[index]; |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 | 583 |
| 583 convertV8ObjectToNPVariant(resultObject, npObject, result); | 584 convertV8ObjectToNPVariant(resultObject, npObject, result); |
| 584 return true; | 585 return true; |
| 585 } | 586 } |
| 586 | 587 |
| 587 if (NP_CLASS_STRUCT_VERSION_HAS_CTOR(npObject->_class) && npObject->_class->
construct) | 588 if (NP_CLASS_STRUCT_VERSION_HAS_CTOR(npObject->_class) && npObject->_class->
construct) |
| 588 return npObject->_class->construct(npObject, arguments, argumentCount, r
esult); | 589 return npObject->_class->construct(npObject, arguments, argumentCount, r
esult); |
| 589 | 590 |
| 590 return false; | 591 return false; |
| 591 } | 592 } |
| OLD | NEW |