Changeset 112221 in webkit
- Timestamp:
- Mar 27, 2012 12:59:59 AM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 6 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r112198 r112221 1 2012-03-27 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] Add resources API to WebKit2 GTK+ 4 https://bugs.webkit.org/show_bug.cgi?id=79477 5 6 Reviewed by Gustavo Noronha Silva. 7 8 * GNUmakefile.am: Add new files to compilation. 9 * UIProcess/API/gtk/WebKitResourceLoadClient.cpp: Added. 10 (didInitiateLoadForResource): Call 11 webkitWebViewResourceLoadStarted() so that view will create the 12 resource and emit WebKitWebView::resource-load-started. 13 (didSendRequestForResource): Call webkitWebResourceSentRequest() 14 with the given request and response. 15 (didReceiveResponseForResource): Call 16 webkitWebResourceSetResponse() with the given response. 17 (didReceiveContentLengthForResource): Call 18 webkitWebResourceNotifyProgress(). 19 (didFinishLoadForResource): Call webkitWebResourceFinished(). 20 (didFailLoadForResource): Create a GError for the given WKError 21 and call webkitWebResourceFailed(). 22 (attachResourceLoadClientToView): Add callbacks for the 23 WKPageResourceLoadClient. 24 * UIProcess/API/gtk/WebKitResourceLoadClient.h: Added. 25 * UIProcess/API/gtk/WebKitWebResource.cpp: Added. 26 (webkitWebResourceGetProperty): 27 (webkit_web_resource_init): 28 (webkit_web_resource_class_init): 29 (webkitWebResourceUpdateURI): Update the active URI every time a 30 new request is sent to the server. 31 (webkitWebResourceCreate): Create a WebResource for the given 32 frame. 33 (webkitWebResourceSentRequest): Update uri and emit 34 WebKitWebResource::sent-request. 35 (webkitWebResourceSetResponse): Set the response property. 36 (webkitWebResourceNotifyProgress): Emit 37 WebKitWebResource::received-data. 38 (webkitWebResourceFinished): Emit WebKitWebResource::finished. 39 (webkitWebResourceFailed): Emit WebKitWebResource::failed and then 40 WebKitWebResource::finished. 41 (webkit_web_resource_get_uri): Return the currentr active URI. 42 (webkit_web_resource_get_response): Return the response received 43 from the server. 44 * UIProcess/API/gtk/WebKitWebResource.h: Added. 45 * UIProcess/API/gtk/WebKitWebResourcePrivate.h: Added. 46 * UIProcess/API/gtk/WebKitWebView.cpp: 47 (webkitWebViewConstructed): Attach the resource load client to the 48 view. 49 (webkit_web_view_class_init): Add 50 WebKitWebView::resource-load-started signal. 51 (webkitWebViewLoadChanged): Clear loading resources map when a new 52 load starts and loaded resources map when the new load has been 53 committed. 54 (webkitWebViewResourceLoadStarted): Create a resource for the 55 given identifier, add it to the loading resources map and emit 56 WebKitWebView::resource-load-started signal. 57 (webkitWebViewGetLoadingWebResource): Return the resource that is 58 being loaded corresponding to the given identifier. 59 (webkitWebViewRemoveLoadingWebResource): Remove the resouurce 60 corresponfing to the given identifier from the loading resources 61 map. 62 (webkitWebViewResourceLoadFinished): Move the resource from the 63 loading resources map to the loaded resources map. 64 (webkit_web_view_get_main_resource): Return the main resource. 65 (webkit_web_view_get_subresources): Return the list of 66 subresources. 67 * UIProcess/API/gtk/WebKitWebView.h: 68 * UIProcess/API/gtk/WebKitWebViewPrivate.h: 69 * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for 70 WebKitWebResource. 71 * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols. 72 * UIProcess/API/gtk/docs/webkit2gtk.types: Add 73 webkit_web_resource_get_type. 74 * UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for resources. 75 * UIProcess/API/gtk/tests/TestDownloads.cpp: 76 (testDownloadLocalFile): Use getWebKit1TestResoucesDir() from Test. 77 (testDownloadLocalFileError): Ditto. 78 (serverCallback): Ditto. 79 * UIProcess/API/gtk/tests/TestMain.h: 80 (Test::getWebKit1TestResoucesDir): Moed from TestDownloads so that 81 it can be used by other tests. 82 (Test): Add information about leaked objects. 83 * UIProcess/API/gtk/tests/TestResources.cpp: Added. 84 (testWebViewResources): 85 (testWebResourceLoading): 86 (testWebResourceResponse): 87 (testWebResourceActiveURI): 88 (addCacheHTTPHeadersToResponse): 89 (serverCallback): 90 (beforeAll): 91 (afterAll): 92 * UIProcess/API/gtk/webkit2.h: Include WebKitWebResource.h 93 * UIProcess/API/gtk/webkit2marshal.list: 94 1 95 2012-03-26 Pratik Solanki <psolanki@apple.com> 2 96 -
trunk/Source/WebKit2/GNUmakefile.am
r111510 r112221 103 103 $(WebKit2)/UIProcess/API/gtk/WebKitURIResponse.h \ 104 104 $(WebKit2)/UIProcess/API/gtk/WebKitWebContext.h \ 105 $(WebKit2)/UIProcess/API/gtk/WebKitWebResource.h \ 105 106 $(WebKit2)/UIProcess/API/gtk/WebKitWebView.h \ 106 107 $(WebKit2)/UIProcess/API/gtk/WebKitWebViewBase.h \ … … 577 578 Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h \ 578 579 Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp \ 580 Source/WebKit2/UIProcess/API/gtk/WebKitResourceLoadClient.cpp \ 581 Source/WebKit2/UIProcess/API/gtk/WebKitResourceLoadClient.h \ 579 582 Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp \ 580 583 Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.h \ … … 597 600 Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp \ 598 601 Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h \ 602 Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp \ 603 Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.h \ 604 Source/WebKit2/UIProcess/API/gtk/WebKitWebResourcePrivate.h \ 599 605 Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h \ 600 606 Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp \ -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
r111510 r112221 32 32 #include "WebKitPrintOperationPrivate.h" 33 33 #include "WebKitPrivate.h" 34 #include "WebKitResourceLoadClient.h" 34 35 #include "WebKitScriptDialogPrivate.h" 35 36 #include "WebKitSettingsPrivate.h" 36 37 #include "WebKitUIClient.h" 37 38 #include "WebKitWebContextPrivate.h" 39 #include "WebKitWebResourcePrivate.h" 38 40 #include "WebKitWebViewBasePrivate.h" 39 41 #include "WebKitWebViewPrivate.h" … … 67 69 PRINT_REQUESTED, 68 70 71 RESOURCE_LOAD_STARTED, 72 69 73 LAST_SIGNAL 70 74 }; … … 86 90 DidReplaceContent 87 91 } ReplaceContentStatus; 92 93 typedef HashMap<uint64_t, GRefPtr<WebKitWebResource> > LoadingResourcesMap; 94 typedef HashMap<String, GRefPtr<WebKitWebResource> > ResourcesMap; 88 95 89 96 struct _WebKitWebViewPrivate { … … 104 111 GRefPtr<WebKitFindController> findController; 105 112 JSGlobalContextRef javascriptGlobalContext; 113 114 GRefPtr<WebKitWebResource> mainResource; 115 LoadingResourcesMap loadingResourcesMap; 116 ResourcesMap subresourcesMap; 106 117 }; 107 118 … … 206 217 attachUIClientToView(webView); 207 218 attachPolicyClientToPage(webView); 219 attachResourceLoadClientToView(webView); 208 220 209 221 WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase); … … 673 685 G_TYPE_BOOLEAN, 1, 674 686 WEBKIT_TYPE_PRINT_OPERATION); 687 688 /** 689 * WebKitWebView::resource-load-started: 690 * @web_view: the #WebKitWebView on which the signal is emitted 691 * @resource: a #WebKitWebResource 692 * @request: a #WebKitURIRequest 693 * 694 * Emitted when a new resource is going to be loaded. The @request parameter 695 * contains the #WebKitURIRequest that will be sent to the server. 696 * You can monitor the load operation by connecting to the different signals 697 * of @resource. 698 */ 699 signals[RESOURCE_LOAD_STARTED] = 700 g_signal_new("resource-load-started", 701 G_TYPE_FROM_CLASS(webViewClass), 702 G_SIGNAL_RUN_LAST, 703 G_STRUCT_OFFSET(WebKitWebViewClass, resource_load_started), 704 0, 0, 705 webkit_marshal_VOID__OBJECT_OBJECT, 706 G_TYPE_NONE, 2, 707 WEBKIT_TYPE_WEB_RESOURCE, 708 WEBKIT_TYPE_URI_REQUEST); 675 709 } 676 710 … … 699 733 return; 700 734 735 if (loadEvent == WEBKIT_LOAD_STARTED) 736 webView->priv->loadingResourcesMap.clear(); 737 else if (loadEvent == WEBKIT_LOAD_COMMITTED) 738 webView->priv->subresourcesMap.clear(); 739 701 740 if (loadEvent != WEBKIT_LOAD_FINISHED) 702 741 webkitWebViewUpdateURI(webView); … … 827 866 return; 828 867 g_signal_connect(printOperation.leakRef(), "finished", G_CALLBACK(g_object_unref), 0); 868 } 869 870 void webkitWebViewResourceLoadStarted(WebKitWebView* webView, WKFrameRef wkFrame, uint64_t resourceIdentifier, WebKitURIRequest* request, bool isMainResource) 871 { 872 // FIXME: ignore resources when replacing content. 873 WebKitWebResource* resource = webkitWebResourceCreate(wkFrame, request); 874 WebKitWebViewPrivate* priv = webView->priv; 875 if (WKFrameIsMainFrame(wkFrame) && isMainResource) 876 priv->mainResource = resource; 877 priv->loadingResourcesMap.set(resourceIdentifier, adoptGRef(resource)); 878 g_signal_emit(webView, signals[RESOURCE_LOAD_STARTED], 0, resource, request); 879 } 880 881 WebKitWebResource* webkitWebViewGetLoadingWebResource(WebKitWebView* webView, uint64_t resourceIdentifier) 882 { 883 GRefPtr<WebKitWebResource> resource = webView->priv->loadingResourcesMap.get(resourceIdentifier); 884 return resource.get(); 885 } 886 887 void webkitWebViewRemoveLoadingWebResource(WebKitWebView* webView, uint64_t resourceIdentifier) 888 { 889 webView->priv->loadingResourcesMap.remove(resourceIdentifier); 890 } 891 892 WebKitWebResource* webkitWebViewResourceLoadFinished(WebKitWebView* webView, uint64_t resourceIdentifier) 893 { 894 WebKitWebResource* resource = webkitWebViewGetLoadingWebResource(webView, resourceIdentifier); 895 WebKitWebViewPrivate* priv = webView->priv; 896 if (resource != priv->mainResource) 897 priv->subresourcesMap.set(String::fromUTF8(webkit_web_resource_get_uri(resource)), resource); 898 webkitWebViewRemoveLoadingWebResource(webView, resourceIdentifier); 899 return resource; 829 900 } 830 901 … … 1610 1681 return scriptResult ? webkit_javascript_result_ref(scriptResult) : 0; 1611 1682 } 1683 1684 /** 1685 * webkit_web_view_get_main_resource: 1686 * @web_view: a #WebKitWebView 1687 * 1688 * Return the main resource of @web_view. 1689 * See also webkit_web_view_get_subresources(): 1690 * 1691 * Returns: (transfer none): the main #WebKitWebResource of the view 1692 * or %NULL if nothing has been loaded. 1693 */ 1694 WebKitWebResource* webkit_web_view_get_main_resource(WebKitWebView* webView) 1695 { 1696 g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); 1697 1698 return webView->priv->mainResource.get(); 1699 } 1700 1701 /** 1702 * webkit_web_view_get_subresources: 1703 * @web_view: a #WebKitWebView 1704 * 1705 * Return the list of subresources of @web_view. 1706 * See also webkit_web_view_get_main_resource(). 1707 * 1708 * Returns: (element-type WebKitWebResource) (transfer container): a list of #WebKitWebResource. 1709 */ 1710 GList* webkit_web_view_get_subresources(WebKitWebView* webView) 1711 { 1712 g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); 1713 1714 GList* subresources = 0; 1715 WebKitWebViewPrivate* priv = webView->priv; 1716 ResourcesMap::const_iterator end = priv->subresourcesMap.end(); 1717 for (ResourcesMap::const_iterator it = priv->subresourcesMap.begin(); it != end; ++it) 1718 subresources = g_list_prepend(subresources, it->second.get()); 1719 1720 return g_list_reverse(subresources); 1721 } -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h
r111510 r112221 39 39 #include <webkit2/WebKitURIRequest.h> 40 40 #include <webkit2/WebKitWebContext.h> 41 #include <webkit2/WebKitWebResource.h> 41 42 #include <webkit2/WebKitWebViewBase.h> 42 43 #include <webkit2/WebKitWindowProperties.h> … … 124 125 WebKitWebViewBaseClass parent; 125 126 126 void (* load_changed) (WebKitWebView *web_view, 127 WebKitLoadEvent load_event); 128 gboolean (* load_failed) (WebKitWebView *web_view, 129 WebKitLoadEvent load_event, 130 const gchar *failing_uri, 131 GError *error); 132 133 GtkWidget *(* create) (WebKitWebView *web_view); 134 void (* ready_to_show) (WebKitWebView *web_view); 135 void (* close) (WebKitWebView *web_view); 136 137 gboolean (* script_dialog) (WebKitWebView *web_view, 138 WebKitScriptDialog *dialog); 139 140 gboolean (* decide_policy) (WebKitWebView *web_view, 141 WebKitPolicyDecision *decision, 142 WebKitPolicyDecisionType type); 143 void (* mouse_target_changed) (WebKitWebView *web_view, 144 WebKitHitTestResult *hit_test_result, 145 guint modifiers); 146 gboolean (* print_requested) (WebKitWebView *web_view, 147 WebKitPrintOperation *print_operation); 127 void (* load_changed) (WebKitWebView *web_view, 128 WebKitLoadEvent load_event); 129 gboolean (* load_failed) (WebKitWebView *web_view, 130 WebKitLoadEvent load_event, 131 const gchar *failing_uri, 132 GError *error); 133 134 GtkWidget *(* create) (WebKitWebView *web_view); 135 void (* ready_to_show) (WebKitWebView *web_view); 136 void (* close) (WebKitWebView *web_view); 137 138 gboolean (* script_dialog) (WebKitWebView *web_view, 139 WebKitScriptDialog *dialog); 140 141 gboolean (* decide_policy) (WebKitWebView *web_view, 142 WebKitPolicyDecision *decision, 143 WebKitPolicyDecisionType type); 144 void (* mouse_target_changed) (WebKitWebView *web_view, 145 WebKitHitTestResult *hit_test_result, 146 guint modifiers); 147 gboolean (* print_requested) (WebKitWebView *web_view, 148 WebKitPrintOperation *print_operation); 149 void (* resource_load_started) (WebKitWebView *web_view, 150 WebKitWebResource *resource, 151 WebKitURIRequest *request); 148 152 149 153 /* Padding for future expansion */ … … 282 286 GAsyncResult *result, 283 287 GError **error); 288 289 WEBKIT_API WebKitWebResource * 290 webkit_web_view_get_main_resource (WebKitWebView *web_view); 291 292 WEBKIT_API GList * 293 webkit_web_view_get_subresources (WebKitWebView *web_view); 284 294 G_END_DECLS 285 295 -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h
r107947 r112221 46 46 void webkitWebViewMouseTargetChanged(WebKitWebView*, WKHitTestResultRef, unsigned modifiers); 47 47 void webkitWebViewPrintFrame(WebKitWebView*, WKFrameRef); 48 void webkitWebViewResourceLoadStarted(WebKitWebView*, WKFrameRef, uint64_t resourceIdentifier, WebKitURIRequest*, bool isMainResource); 49 WebKitWebResource* webkitWebViewGetLoadingWebResource(WebKitWebView*, uint64_t resourceIdentifier); 50 void webkitWebViewRemoveLoadingWebResource(WebKitWebView*, uint64_t resourceIdentifier); 51 WebKitWebResource* webkitWebViewResourceLoadFinished(WebKitWebView*, uint64_t resourceIdentifier); 48 52 49 53 #endif // WebKitWebViewPrivate_h -
trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml
r109222 r112221 27 27 <xi:include href="xml/WebKitHitTestResult.xml"/> 28 28 <xi:include href="xml/WebKitPrintOperation.xml"/> 29 <xi:include href="xml/WebKitWebResource.xml"/> 29 30 <xi:include href="xml/WebKitError.xml"/> 30 31 <xi:include href="xml/WebKitFindController.xml"/> -
trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt
r111510 r112221 107 107 webkit_script_dialog_prompt_get_default_text 108 108 webkit_script_dialog_prompt_set_text 109 webkit_web_view_get_main_resource 110 webkit_web_view_get_subresources 109 111 110 112 <SUBSECTION Standard> … … 475 477 476 478 <SECTION> 479 <FILE>WebKitWebResource</FILE> 480 WebKitWebResource 481 webkit_web_resource_get_uri 482 webkit_web_resource_get_response 483 484 <SUBSECTION Standard> 485 WebKitWebResourceClass 486 WEBKIT_TYPE_WEB_RESOURCE 487 WEBKIT_WEB_RESOURCE 488 WEBKIT_IS_WEB_RESOURCE 489 WEBKIT_WEB_RESOURCE_CLASS 490 WEBKIT_IS_WEB_RESOURCE_CLASS 491 WEBKIT_WEB_RESOURCE_GET_CLASS 492 493 <SUBSECTION Private> 494 WebKitWebResourcePrivate 495 webkit_web_resource_get_type 496 </SECTION> 497 498 <SECTION> 477 499 <FILE>WebKitError</FILE> 478 500 WEBKIT_NETWORK_ERROR -
trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk.types
r111510 r112221 13 13 webkit_script_dialog_get_type 14 14 webkit_javascript_result_get_type 15 webkit_web_resource_get_type -
trunk/Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
r109222 r112221 6 6 Programs/WebKit2APITests/TestLoaderClient \ 7 7 Programs/WebKit2APITests/TestPrinting \ 8 Programs/WebKit2APITests/TestResources \ 8 9 Programs/WebKit2APITests/TestWebKitFindController \ 9 10 Programs/WebKit2APITests/TestWebKitPolicyClient \ … … 136 137 Programs_WebKit2APITests_TestWebKitFindController_LDFLAGS = $(webkit2_tests_ldflags) 137 138 139 Programs_WebKit2APITests_TestResources_SOURCES = \ 140 Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp 141 Programs_WebKit2APITests_TestResources_CPPFLAGS = $(webkit2_tests_cppflags) 142 Programs_WebKit2APITests_TestResources_LDADD = $(webkit2_tests_ldadd) 143 Programs_WebKit2APITests_TestResources_LDFLAGS = $(webkit2_tests_ldflags) 144 138 145 endif # ENABLE_WEBKIT2 -
trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestDownloads.cpp
r105708 r112221 174 174 }; 175 175 176 static CString getWebKit1TestResoucesDir()177 {178 GOwnPtr<char> resourcesDir(g_build_filename(WEBKIT_SRC_DIR, "Source", "WebKit", "gtk", "tests", "resources", NULL));179 return resourcesDir.get();180 }181 182 176 static void testDownloadLocalFile(DownloadTest* test, gconstpointer) 183 177 { 184 GOwnPtr<char> sourcePath(g_build_filename( getWebKit1TestResoucesDir().data(), "test.pdf", NULL));178 GOwnPtr<char> sourcePath(g_build_filename(Test::getWebKit1TestResoucesDir().data(), "test.pdf", NULL)); 185 179 GRefPtr<GFile> source = adoptGRef(g_file_new_for_path(sourcePath.get())); 186 180 GRefPtr<GFileInfo> sourceInfo = adoptGRef(g_file_query_info(source.get(), G_FILE_ATTRIBUTE_STANDARD_SIZE, static_cast<GFileQueryInfoFlags>(0), 0, 0)); … … 259 253 260 254 test->m_expectedError = WEBKIT_DOWNLOAD_ERROR_DESTINATION; 261 GOwnPtr<char> path(g_build_filename( getWebKit1TestResoucesDir().data(), "test.pdf", NULL));255 GOwnPtr<char> path(g_build_filename(Test::getWebKit1TestResoucesDir().data(), "test.pdf", NULL)); 262 256 GRefPtr<GFile> file = adoptGRef(g_file_new_for_path(path.get())); 263 257 GOwnPtr<char> uri(g_file_get_uri(file.get())); … … 302 296 } 303 297 304 GOwnPtr<char> filePath(g_build_filename( getWebKit1TestResoucesDir().data(), path, NULL));298 GOwnPtr<char> filePath(g_build_filename(Test::getWebKit1TestResoucesDir().data(), path, NULL)); 305 299 char* contents; 306 300 gsize contentsLength; -
trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestMain.h
r111696 r112221 24 24 #include <wtf/HashSet.h> 25 25 #include <wtf/gobject/GOwnPtr.h> 26 #include <wtf/text/CString.h> 26 27 27 28 #define MAKE_GLIB_TEST_FIXTURE(ClassName) \ … … 46 47 ~Test() 47 48 { 49 if (m_watchedObjects.isEmpty()) 50 return; 51 52 g_print("Leaked objects:"); 53 HashSet<GObject*>::const_iterator end = m_watchedObjects.end(); 54 for (HashSet<GObject*>::const_iterator it = m_watchedObjects.begin(); it != end; ++it) 55 g_print(" %s(%p)", g_type_name_from_instance(reinterpret_cast<GTypeInstance*>(*it)), *it); 56 g_print("\n"); 57 48 58 g_assert(m_watchedObjects.isEmpty()); 49 59 } … … 60 70 } 61 71 72 static CString getWebKit1TestResoucesDir() 73 { 74 GOwnPtr<char> resourcesDir(g_build_filename(WEBKIT_SRC_DIR, "Source", "WebKit", "gtk", "tests", "resources", NULL)); 75 return resourcesDir.get(); 76 } 77 62 78 HashSet<GObject*> m_watchedObjects; 63 79 }; -
trunk/Source/WebKit2/UIProcess/API/gtk/webkit2.h
r111510 r112221 40 40 #include <webkit2/WebKitURIResponse.h> 41 41 #include <webkit2/WebKitWebContext.h> 42 #include <webkit2/WebKitWebResource.h> 42 43 #include <webkit2/WebKitWebViewBase.h> 43 44 #include <webkit2/WebKitWebView.h> -
trunk/Source/WebKit2/UIProcess/API/gtk/webkit2marshal.list
r109880 r112221 6 6 OBJECT:VOID 7 7 VOID:OBJECT,UINT 8 VOID:OBJECT,OBJECT 8 9 VOID:OBJECT,POINTER 9 10 VOID:UINT64
Note: See TracChangeset
for help on using the changeset viewer.