From: Michal Privoznik Date: Sat, 21 Jan 2023 09:33:07 +0000 (+0100) Subject: vbox: Introduce vboxUniformedPFN::ClearException() X-Git-Tag: v9.1.0-rc1~182 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab37a858eb9f1ebc632f8cf8f75f65e0325ab0aa;p=thirdparty%2Flibvirt.git vbox: Introduce vboxUniformedPFN::ClearException() 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 Reviewed-by: Martin Kletzander --- diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index d95a2d2dc6..3db8557c53 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -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 = { diff --git a/src/vbox/vbox_uniformed_api.h b/src/vbox/vbox_uniformed_api.h index 9d55bd0dd7..e9e3592b0f 100644 --- a/src/vbox/vbox_uniformed_api.h +++ b/src/vbox/vbox_uniformed_api.h @@ -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 */