Author: rhs
Date: Thu Jun 19 17:22:19 2014
New Revision: 1603952
URL: http://svn.apache.org/r1603952
Log:
added assert for null event context; fixed pn_collector_pop to decref context
prior to adding event back to the free list
Modified:
qpid/proton/trunk/proton-c/src/engine/engine.c
qpid/proton/trunk/proton-c/src/engine/event.c
Modified: qpid/proton/trunk/proton-c/src/engine/engine.c
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/engine/engine.c?rev=1603952&r1=1603951&r2=1603952&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/engine/engine.c (original)
+++ qpid/proton/trunk/proton-c/src/engine/engine.c Thu Jun 19 17:22:19 2014
@@ -593,7 +593,7 @@ void pn_modified(pn_connection_t *connec
pn_incref(endpoint);
}
- if (emit) {
+ if (emit && connection->transport) {
pn_event_t *event = pn_collector_put(connection->collector, PN_TRANSPORT);
if (event) {
pn_event_init(event, connection->transport);
Modified: qpid/proton/trunk/proton-c/src/engine/event.c
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/engine/event.c?rev=1603952&r1=1603951&r2=1603952&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/engine/event.c (original)
+++ qpid/proton/trunk/proton-c/src/engine/event.c Thu Jun 19 17:22:19 2014
@@ -130,14 +130,15 @@ bool pn_collector_pop(pn_collector_t *co
collector->tail = NULL;
}
- event->next = collector->free_head;
- collector->free_head = event;
-
+ // decref before adding to the free list
if (event->context) {
pn_decref(event->context);
event->context = NULL;
}
+ event->next = collector->free_head;
+ collector->free_head = event;
+
return true;
}
@@ -178,9 +179,9 @@ pn_event_t *pn_event(void)
void pn_event_init(pn_event_t *event, void *context)
{
+ assert(context);
event->context = context;
- if (event->context)
- pn_incref(event->context);
+ pn_incref(event->context);
}
pn_event_type_t pn_event_type(pn_event_t *event)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]