qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <bonzini@gnu.org>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, avi@redhat.com
Subject: [Qemu-devel] Re: [PATCH 01/29] Introduce QObject
Date: Thu, 20 Aug 2009 10:51:58 +0200	[thread overview]
Message-ID: <4A8D0EAE.2020608@gnu.org> (raw)
In-Reply-To: <1250723280-3509-2-git-send-email-lcapitulino@redhat.com>

> + *  - New reference: means that the caller is now the owner of a reference,
> + *    for example, if you call a function that returns a 'new reference' you
> + *    must call QDECREF() when you are done
> + *
> + *  - Borrowing a reference: nothing needs to be done, you are not the
> + *    owner of the reference
> + *
> + *  - Stealing a reference: when you pass a reference to a function that
> + *    'steals a reference' this function assumes that it now owns that
> + *    reference

I think the usual terms used here would be like

    - Returning references: A function that returns an object may
    return it as either a weak or a strong reference.  If the reference
    is strong, you are responsible for calling QDECREF() on the reference
    when you are done.

    If the reference is weak, the owner of the reference may free it at
    any time in the future.  Before storing the reference anywhere, you
    should call QINCREF() to make the reference strong.

    - Transferring ownership: when you transfer ownership of a reference
    by calling a function, you are no longer responsible for calling
    QDECREF() when the reference is no longer needed.  In other words,
    when the function returns you must behave as if the reference to the
    passed object
    was weak.

I'll post examples of using this terminology in the review of QDict.

Paolo

  parent reply	other threads:[~2009-08-20  8:52 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-19 23:07 [Qemu-devel] [PATCH v1 00/29] QMonitor Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 01/29] Introduce QObject Luiz Capitulino
2009-08-20  8:34   ` [Qemu-devel] " Paolo Bonzini
2009-08-20 14:17     ` Luiz Capitulino
2009-08-20 14:21       ` Paolo Bonzini
2009-08-20 15:12         ` Luiz Capitulino
2009-08-20 15:15           ` Paolo Bonzini
2009-08-20  8:51   ` Paolo Bonzini [this message]
2009-08-19 23:07 ` [Qemu-devel] [PATCH 02/29] Introduce QInt Luiz Capitulino
2009-08-20  7:51   ` [Qemu-devel] " Avi Kivity
2009-08-20  9:22     ` Paolo Bonzini
2009-08-20 13:24     ` Luiz Capitulino
2009-08-20 13:26       ` Avi Kivity
2009-08-20 14:51         ` Luiz Capitulino
2009-08-20 14:55           ` Avi Kivity
2009-08-20 15:14             ` Luiz Capitulino
2009-08-20  8:37   ` Paolo Bonzini
2009-08-20 13:44     ` Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 03/29] Introduce QString Luiz Capitulino
2009-08-20  8:41   ` [Qemu-devel] " Paolo Bonzini
2009-08-20 14:19     ` Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 04/29] Introduce QDict Luiz Capitulino
2009-08-20  7:57   ` [Qemu-devel] " Avi Kivity
2009-08-20 13:57     ` Luiz Capitulino
2009-08-20 14:07       ` Avi Kivity
2009-08-20 15:08         ` Luiz Capitulino
2009-08-20 15:26           ` Avi Kivity
2009-08-20  9:00   ` Paolo Bonzini
2009-08-20 14:14     ` Luiz Capitulino
2009-08-24 15:40   ` [Qemu-devel] " Markus Armbruster
2009-08-24 16:11     ` Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 05/29] Add wrappers to functions used by the Monitor Luiz Capitulino
2009-08-24 16:47   ` Markus Armbruster
2009-08-19 23:07 ` [Qemu-devel] [PATCH 06/29] monitor: New format for handlers argument types Luiz Capitulino
2009-08-24 16:21   ` Markus Armbruster
2009-08-24 17:00     ` Luiz Capitulino
2009-09-04 14:06       ` Anthony Liguori
2009-09-04 14:48         ` Luiz Capitulino
2009-09-04 15:18         ` Markus Armbruster
2009-08-19 23:07 ` [Qemu-devel] [PATCH 07/29] monitor: Setup a QDict with arguments to handlers Luiz Capitulino
2009-08-24 16:25   ` Markus Armbruster
2009-08-24 17:07     ` Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 08/29] monitor: Export QDict header Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 09/29] monitor: Port handler_0 to use QDict Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 10/29] monitor: Port handler_1 " Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 11/29] monitor: Port handler_2 " Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 12/29] monitor: Port handler_3 " Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 13/29] monitor: Port handler_4 " Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 14/29] monitor: Port handler_5 " Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 15/29] monitor: Port handler_6 " Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 16/29] monitor: Port handler_7 " Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 17/29] monitor: Drop handler_8 and handler_9 Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 18/29] monitor: Port handler_10 to use QDict Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 19/29] monitor: Split monitor_handle_command() Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 20/29] monitor: Drop unused macros Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 21/29] monitor: Drop str_allocated[] Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 22/29] monitor: Drop args[] handling code Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 23/29] monitor: fail when 'i' type is greater than 32-bit Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 24/29] monitor: Update supported types documentation Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 25/29] Add check support Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 26/29] Introduce QInt unit-tests Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 27/29] Introduce QString unit-tests Luiz Capitulino
2009-08-19 23:07 ` [Qemu-devel] [PATCH 28/29] Introduce QDict test data file Luiz Capitulino
2009-08-19 23:08 ` [Qemu-devel] [PATCH 29/29] Introduce QDict unit-tests Luiz Capitulino
  -- strict thread matches above, loose matches on Subject: below --
2009-08-26 17:05 [Qemu-devel] [PATCH v2 00/29] QMonitor Luiz Capitulino
2009-08-26 17:05 ` [Qemu-devel] [PATCH 01/29] Introduce QObject Luiz Capitulino
2009-08-26 18:12   ` [Qemu-devel] " Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A8D0EAE.2020608@gnu.org \
    --to=bonzini@gnu.org \
    --cc=aliguori@us.ibm.com \
    --cc=avi@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).