From 9ba24c0722d641abeff8e8c391eaab324bab840f Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Wed, 15 Feb 2017 14:48:01 +0100 Subject: [PATCH] vbox: use with_libc --- repos/ports/src/virtualbox/frontend/main.cc | 25 ++++++++++--------- repos/ports/src/virtualbox5/frontend/main.cc | 26 +++++++++++--------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/repos/ports/src/virtualbox/frontend/main.cc b/repos/ports/src/virtualbox/frontend/main.cc index cfcb631536..b3dc4f6b80 100644 --- a/repos/ports/src/virtualbox/frontend/main.cc +++ b/repos/ports/src/virtualbox/frontend/main.cc @@ -237,19 +237,20 @@ void Libc::Component::construct(Libc::Env &env) /* enable stdout/stderr for VBox Log infrastructure */ init_libc_vbox_logger(); - static char argv0[] = { '_', 'm', 'a', 'i', 'n', 0}; - static char *argv[1] = { argv0 }; - char **dummy_argv = argv; + Libc::with_libc([&] () { + static char argv0[] = { '_', 'm', 'a', 'i', 'n', 0}; + static char *argv[1] = { argv0 }; + char **dummy_argv = argv; - int rc = RTR3InitExe(1, &dummy_argv, 0); - if (RT_FAILURE(rc)) - throw -1; - - HRESULT hrc = setupmachine(env); - if (FAILED(hrc)) { - Genode::error("startup of VMM failed - reason ", hrc, " - exiting ..."); - throw -2; - } + int rc = RTR3InitExe(1, &dummy_argv, 0); + if (RT_FAILURE(rc)) + throw -1; + HRESULT hrc = setupmachine(env); + if (FAILED(hrc)) { + Genode::error("startup of VMM failed - reason ", hrc, " - exiting ..."); + throw -2; + } + }); Genode::error("VMM exiting ..."); } diff --git a/repos/ports/src/virtualbox5/frontend/main.cc b/repos/ports/src/virtualbox5/frontend/main.cc index 9a414865bd..2ccd801683 100644 --- a/repos/ports/src/virtualbox5/frontend/main.cc +++ b/repos/ports/src/virtualbox5/frontend/main.cc @@ -268,20 +268,22 @@ void Libc::Component::construct(Libc::Env &env) /* enable stdout/stderr for VBox Log infrastructure */ init_libc_vbox_logger(); - static char argv0[] = { '_', 'm', 'a', 'i', 'n', 0}; - static char *argv[1] = { argv0 }; - char **dummy_argv = argv; + Libc::with_libc([&] () { + static char argv0[] = { '_', 'm', 'a', 'i', 'n', 0}; + static char *argv[1] = { argv0 }; + char **dummy_argv = argv; - int rc = RTR3InitExe(1, &dummy_argv, 0); - if (RT_FAILURE(rc)) - throw -1; + int rc = RTR3InitExe(1, &dummy_argv, 0); + if (RT_FAILURE(rc)) + throw -1; - HRESULT hrc = setupmachine(env); - if (FAILED(hrc)) { - Genode::error("startup of VMM failed - reason ", hrc, " '", - RTErrCOMGet(hrc)->pszMsgFull, "' - exiting ..."); - throw -2; - } + HRESULT hrc = setupmachine(env); + if (FAILED(hrc)) { + Genode::error("startup of VMM failed - reason ", hrc, " '", + RTErrCOMGet(hrc)->pszMsgFull, "' - exiting ..."); + throw -2; + } + }); Genode::error("VMM exiting ..."); }