Message ID | 20250102211800.79235-3-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | QOM: container_get() removal | expand |
On 1/2/25 13:17, Philippe Mathieu-Daudé wrote: > From: Peter Xu <peterx@redhat.com> > > Currently, qdev_get_machine() has a slight misuse on container_get(), as > the helper says "get a container" but in reality the goal is to get the > machine object. It is still a "container" but not strictly. > > Note that it _may_ get a container (at "/machine") in our current unit test > of test-qdev-global-props.c before all these changes, but it's probably > unexpected and worked by accident. > > Switch to an explicit object_resolve_path_component(), with a side benefit > that qdev_get_machine() can happen a lot, and we don't need to split the > string ("/machine") every time. This also paves way for making the helper > container_get() never try to return a non-container at all. > > Signed-off-by: Peter Xu <peterx@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Message-ID: <20241121192202.4155849-9-peterx@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > hw/core/qdev.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 57c1d9df3a7..bc5b60212a7 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -818,7 +818,12 @@ Object *qdev_get_machine(void) static Object *dev; if (dev == NULL) { - dev = container_get(object_get_root(), "/machine"); + dev = object_resolve_path_component(object_get_root(), "machine"); + /* + * Any call to this function before machine is created is treated + * as a programming error as of now. + */ + assert(dev); } return dev;