From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:50640) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TPGLO-0003iV-R6 for qemu-devel@nongnu.org; Fri, 19 Oct 2012 13:26:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TPGLK-0006Si-Mb for qemu-devel@nongnu.org; Fri, 19 Oct 2012 13:26:46 -0400 Received: from 38.0.169.217.in-addr.arpa ([217.169.0.38]:50507 helo=mnementh.archaic.org.uk) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TPGLK-0006RA-G1 for qemu-devel@nongnu.org; Fri, 19 Oct 2012 13:26:42 -0400 From: Peter Maydell Date: Fri, 19 Oct 2012 18:19:04 +0100 Message-Id: <1350667146-26273-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH 0/2] qom: detect attempts to add a property that already exists List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Anthony Liguori , patches@linaro.org The aim of this patch series is to make QEMU exit with a helpful error message for bugs where multiple properties of the same name are accidentally added to a QOM object. In order to achieve this for static properties whilst still allowing the hotplug case to gracefully fail without killing QEMU, we add the concept of a 'critical' error. A critical error is one which must be handled somehow -- if we encounter a NULL Error** either when the error is raised or later when it is propagated, we will abort() rather than throwing the error away. (This is a bit different from the idea we initially discussed on IRC, which was to have an error_propagate_or_abort() function, but that approach would mean that the error would get thrown away by intermediate functions such as qdev_property_add_static() unless all those functions were changed too. I think this way is more reliable.) Peter Maydell (2): error: Distinguish critical and non-critical errors qom: Detect attempts to add a property that already exists error.c | 38 ++++++++++++++++++++++++++++++++++---- error.h | 12 ++++++++++++ qom/object.c | 13 ++++++++++++- 3 files changed, 58 insertions(+), 5 deletions(-) -- 1.7.9.5