Rename camel_service_get_settings().
authorMatthew Barnes <mbarnes@redhat.com>
Sun, 12 Aug 2012 17:52:58 +0000 (13:52 -0400)
committerMatthew Barnes <mbarnes@redhat.com>
Sun, 12 Aug 2012 17:55:32 +0000 (13:55 -0400)
commit444dd5e097ecfe63e2a70f9c813e80e47d8c99e5
tree69cefde52eb4ced295d542dea6c98f1eec502c77
parent123d96aa7703054bcbc51e911d73db7190428d35
Rename camel_service_get_settings().

Applying lessons learned from ESourceRegistry.

Rename camel_service_get_settings() to camel_service_ref_settings()
and have it return a new reference.

When returning a pointer to a reference-counted object in a multi-
threaded environment, always increase the object's reference count
before returning so as to transfer a new reference to the caller.

Otherwise it introduces a potential race where the reference-counted
object may lose its last reference and be freed while the caller is
still using the object.  Even if the caller immediately increments
the object's reference count, it's still a potential race.

Transferring a new reference to the caller means the caller must
unreference the object when finished with it so the object will be
properly freed when it's no longer needed.
37 files changed:
camel/camel-disco-folder.c
camel/camel-disco-store.c
camel/camel-imapx-conn-manager.c
camel/camel-imapx-folder.c
camel/camel-imapx-server.c
camel/camel-imapx-store.c
camel/camel-imapx-utils.c
camel/camel-network-service.c
camel/camel-offline-folder.c
camel/camel-offline-store.c
camel/camel-sasl-cram-md5.c
camel/camel-sasl-digest-md5.c
camel/camel-sasl-gssapi.c
camel/camel-sasl-login.c
camel/camel-sasl-ntlm.c
camel/camel-sasl-plain.c
camel/camel-service.c
camel/camel-service.h
camel/providers/imap/camel-imap-command.c
camel/providers/imap/camel-imap-folder.c
camel/providers/imap/camel-imap-store.c
camel/providers/imap/camel-imap-wrapper.c
camel/providers/local/camel-local-folder.c
camel/providers/local/camel-local-store.c
camel/providers/local/camel-maildir-folder.c
camel/providers/local/camel-maildir-store.c
camel/providers/local/camel-mbox-store.c
camel/providers/local/camel-mh-store.c
camel/providers/local/camel-spool-folder.c
camel/providers/local/camel-spool-store.c
camel/providers/nntp/camel-nntp-folder.c
camel/providers/nntp/camel-nntp-store.c
camel/providers/nntp/camel-nntp-summary.c
camel/providers/pop3/camel-pop3-folder.c
camel/providers/pop3/camel-pop3-store.c
camel/providers/smtp/camel-smtp-transport.c
docs/reference/camel/camel-sections.txt