OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 NPIdentifier identifier = _NPN_GetIntIdentifier(index); | 366 NPIdentifier identifier = _NPN_GetIntIdentifier(index); |
367 v8SetReturnValue(info, npObjectSetProperty(self, identifier, value, info.Get
Isolate())); | 367 v8SetReturnValue(info, npObjectSetProperty(self, identifier, value, info.Get
Isolate())); |
368 } | 368 } |
369 | 369 |
370 void npObjectPropertyEnumerator(const v8::PropertyCallbackInfo<v8::Array>& info,
bool namedProperty) | 370 void npObjectPropertyEnumerator(const v8::PropertyCallbackInfo<v8::Array>& info,
bool namedProperty) |
371 { | 371 { |
372 NPObject* npObject = v8ObjectToNPObject(info.Holder()); | 372 NPObject* npObject = v8ObjectToNPObject(info.Holder()); |
373 | 373 |
374 // Verify that our wrapper wasn't using a NPObject which | 374 // Verify that our wrapper wasn't using a NPObject which |
375 // has already been deleted. | 375 // has already been deleted. |
376 if (!npObject || !_NPN_IsAlive(npObject)) | 376 if (!npObject || !_NPN_IsAlive(npObject)) { |
377 V8ThrowException::throwReferenceError("NPObject deleted", info.GetIsolat
e()); | 377 V8ThrowException::throwReferenceError("NPObject deleted", info.GetIsolat
e()); |
| 378 return; |
| 379 } |
378 | 380 |
379 if (NP_CLASS_STRUCT_VERSION_HAS_ENUM(npObject->_class) && npObject->_class->
enumerate) { | 381 if (NP_CLASS_STRUCT_VERSION_HAS_ENUM(npObject->_class) && npObject->_class->
enumerate) { |
380 uint32_t count; | 382 uint32_t count; |
381 NPIdentifier* identifiers; | 383 NPIdentifier* identifiers; |
382 if (npObject->_class->enumerate(npObject, &identifiers, &count)) { | 384 if (npObject->_class->enumerate(npObject, &identifiers, &count)) { |
383 uint32_t propertiesCount = 0; | 385 uint32_t propertiesCount = 0; |
384 for (uint32_t i = 0; i < count; ++i) { | 386 for (uint32_t i = 0; i < count; ++i) { |
385 IdentifierRep* identifier = static_cast<IdentifierRep*>(identifi
ers[i]); | 387 IdentifierRep* identifier = static_cast<IdentifierRep*>(identifi
ers[i]); |
386 if (namedProperty == identifier->m_isString) | 388 if (namedProperty == identifier->m_isString) |
387 ++propertiesCount; | 389 ++propertiesCount; |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 v8::HandleScope scope(isolate); | 488 v8::HandleScope scope(isolate); |
487 v8::Handle<v8::Object> wrapper = staticNPObjectMap().newLocal(object, isolat
e); | 489 v8::Handle<v8::Object> wrapper = staticNPObjectMap().newLocal(object, isolat
e); |
488 if (!wrapper.IsEmpty()) { | 490 if (!wrapper.IsEmpty()) { |
489 V8DOMWrapper::clearNativeInfo(wrapper, npObjectTypeInfo()); | 491 V8DOMWrapper::clearNativeInfo(wrapper, npObjectTypeInfo()); |
490 staticNPObjectMap().removeAndDispose(object); | 492 staticNPObjectMap().removeAndDispose(object); |
491 _NPN_ReleaseObject(object); | 493 _NPN_ReleaseObject(object); |
492 } | 494 } |
493 } | 495 } |
494 | 496 |
495 } // namespace blink | 497 } // namespace blink |
OLD | NEW |