]> xenbits.xensource.com Git - libvirt.git/commitdiff
vbox: Introduce vboxUniformedPFN::ClearException()
authorMichal Privoznik <mprivozn@redhat.com>
Sat, 21 Jan 2023 09:33:07 +0000 (10:33 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 24 Jan 2023 09:45:35 +0000 (10:45 +0100)
The ClearException() method clears the latest exception inside of
VirtualBox. This needed because obtaining an exception via
GetException() does not clear it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
src/vbox/vbox_tmpl.c
src/vbox/vbox_uniformed_api.h

index d95a2d2dc6c3c2dbc54cc45b44e5f5a635cc44b1..3db8557c53c3d10fb8ee4675db13a94b950e2073 100644 (file)
@@ -486,6 +486,11 @@ static HRESULT _pfnGetException(PCVBOXXPCOM pFuncs, IErrorInfo **ppException)
     return pFuncs->pfnGetException(ppException);
 }
 
+static HRESULT _pfnClearException(PCVBOXXPCOM pFuncs)
+{
+    return pFuncs->pfnClearException();
+}
+
 static void _vboxIIDInitialize(vboxIID *iid)
 {
     memset(iid, 0, sizeof(vboxIID));
@@ -2224,6 +2229,7 @@ static vboxUniformedPFN _UPFN = {
     .Utf16ToUtf8 = _pfnUtf16ToUtf8,
     .Utf8ToUtf16 = _pfnUtf8ToUtf16,
     .GetException = _pfnGetException,
+    .ClearException = _pfnClearException,
 };
 
 static vboxUniformedIID _UIID = {
index 9d55bd0dd7a1adce48929dcfcf36aa11f3981f32..e9e3592b0fbc0881e5b720d135db744b7e3cea16 100644 (file)
@@ -110,6 +110,7 @@ typedef struct {
     int (*Utf16ToUtf8)(PCVBOXXPCOM pFuncs, const PRUnichar *pwszString, char **ppszString);
     int (*Utf8ToUtf16)(PCVBOXXPCOM pFuncs, const char *pszString, PRUnichar **ppwszString);
     HRESULT (*GetException)(PCVBOXXPCOM pFuncs, nsIException **ppException);
+    HRESULT (*ClearException)(PCVBOXXPCOM pFuncs);
 } vboxUniformedPFN;
 
 /* Functions for vboxIID */