Changeset 55415 in webkit
- Timestamp:
- Mar 2, 2010 10:34:28 AM (14 years ago)
- Location:
- trunk/WebKitTools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKitTools/ChangeLog
r55411 r55415 1 2010-03-02 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> 2 3 Reviewed by Alexey Proskuryakov. 4 5 Test plugin still has issues with releasing objects, and variants 6 https://bugs.webkit.org/show_bug.cgi?id=35587 7 8 Fix the conditions for releasing the variants after calling 9 invoke, and avoid having a number of objects leak. 10 11 * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.cpp: 12 (testDocumentOpen): 13 (testWindowOpen): 14 1 15 2010-03-02 Chris Jerdonek <cjerdonek@webkit.org> 2 16 -
trunk/WebKitTools/DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.cpp
r55392 r55415 712 712 NPVariant docVariant; 713 713 browser->getproperty(npp, windowObject, documentId, &docVariant); 714 if (docVariant.type != NPVariantType_Object) 715 return false; 714 if (docVariant.type != NPVariantType_Object) { 715 browser->releaseobject(windowObject); 716 return false; 717 } 716 718 717 719 NPObject *documentObject = NPVARIANT_TO_OBJECT(docVariant); … … 722 724 723 725 NPVariant result; 724 if (browser->invoke(npp, documentObject, openId, openArgs, 2, &result)) 726 if (!browser->invoke(npp, documentObject, openId, openArgs, 2, &result)) { 727 browser->releaseobject(windowObject); 725 728 browser->releaseobject(documentObject); 726 727 if (result.type == NPVariantType_Object) { 728 pluginLogWithWindowObjectVariableArgs(windowObject, npp, "DOCUMENT OPEN SUCCESS"); 729 notifyTestCompletion(npp, result.value.objectValue); 730 browser->releaseobject(result.value.objectValue); 731 return true; 732 } 733 734 return false; 729 return false; 730 } 731 732 browser->releaseobject(documentObject); 733 734 if (result.type != NPVariantType_Object) { 735 browser->releaseobject(windowObject); 736 browser->releasevariantvalue(&result); 737 return false; 738 } 739 740 pluginLogWithWindowObjectVariableArgs(windowObject, npp, "DOCUMENT OPEN SUCCESS"); 741 notifyTestCompletion(npp, result.value.objectValue); 742 browser->releaseobject(result.value.objectValue); 743 browser->releaseobject(windowObject); 744 return true; 735 745 } 736 746 … … 749 759 750 760 NPVariant result; 751 bool didSucceed = browser->invoke(npp, windowObject, openId, openArgs, 2, &result); 752 if (didSucceed && (result.type == NPVariantType_Object)) { 753 pluginLogWithWindowObjectVariableArgs(windowObject, npp, "WINDOW OPEN SUCCESS"); 754 notifyTestCompletion(npp, result.value.objectValue); 755 browser->releaseobject(result.value.objectValue); 756 return true; 757 } 758 return false; 761 if (!browser->invoke(npp, windowObject, openId, openArgs, 2, &result)) { 762 browser->releaseobject(windowObject); 763 return false; 764 } 765 766 if (result.type != NPVariantType_Object) { 767 browser->releaseobject(windowObject); 768 browser->releasevariantvalue(&result); 769 return false; 770 } 771 772 pluginLogWithWindowObjectVariableArgs(windowObject, npp, "WINDOW OPEN SUCCESS"); 773 notifyTestCompletion(npp, result.value.objectValue); 774 browser->releaseobject(result.value.objectValue); 775 browser->releaseobject(windowObject); 776 return true; 759 777 } 760 778
Note: See TracChangeset
for help on using the changeset viewer.