From 06ce0a8ef132821bc46c038d846dadd55708bc91 Mon Sep 17 00:00:00 2001 From: Torsten Hilbrich Date: Mon, 29 Oct 2012 08:06:47 +0100 Subject: [PATCH] loader: Fix warnings about uninitialized variable g++ 4.4.5 outputs the following warnings in our code using the loader session: .../base/include/base/capability.h: In member function 'typename Genode::Trait::Call_return::Type Genode::Capability::call() const [with IF = Loader::Session::Rpc_view_geometry, RPC_INTERFACE = Loader::Session]': .../base/include/base/capability.h:207: warning: 'ret.Genode::Capability::Return::_value.Loader::Session::View_geometry::width' may be used uninitialized in this function .../base/include/base/capability.h:207: warning: 'ret.Genode::Capability::Return::_value.Loader::Session::View_geometry::height' may be used uninitialized in this function .../base/include/base/capability.h:207: warning: 'ret.Genode::Capability::Return::_value.Loader::Session::View_geometry::buf_x' may be used uninitialized in this function .../base/include/base/capability.h:207: warning: 'ret.Genode::Capability::Return::_value.Loader::Session::View_geometry::buf_y' may be used uninitialized in this function This is easily fixed with providing a default constructor. Because of the C++ rules regarding initialer lists code that used them for View_geometry had to be modified to use a normal construction call. In my tests only Nitpicker had to be changed. --- os/include/loader_session/loader_session.h | 3 +++ os/src/server/loader/nitpicker.h | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/os/include/loader_session/loader_session.h b/os/include/loader_session/loader_session.h index 5f4c37153d..72b8c12a0f 100644 --- a/os/include/loader_session/loader_session.h +++ b/os/include/loader_session/loader_session.h @@ -48,6 +48,9 @@ namespace Loader { { int width, height; int buf_x, buf_y; + + View_geometry(): width(0), height(0), buf_x(0), buf_y() {} + View_geometry(int w, int h, int x, int y): width(w), height(h), buf_x(x), buf_y(y) {} }; typedef Genode::Rpc_in_buffer<64> Name; diff --git a/os/src/server/loader/nitpicker.h b/os/src/server/loader/nitpicker.h index eccbe8919b..792db573c0 100644 --- a/os/src/server/loader/nitpicker.h +++ b/os/src/server/loader/nitpicker.h @@ -270,11 +270,11 @@ namespace Nitpicker { */ Loader::Session::View_geometry loader_view_geometry() { - Loader::Session::View_geometry result = { + Loader::Session::View_geometry result( min(_proxy_view.w(), _fb_width), min(_proxy_view.h(), _fb_height), _proxy_view.buf_x(), - _proxy_view.buf_y() }; + _proxy_view.buf_y()); return result; }