diff options
-rw-r--r-- | camel/ChangeLog | 5 | ||||
-rw-r--r-- | camel/camel-data-wrapper.c | 8 | ||||
-rw-r--r-- | camel/camel-mime-part.c | 3 |
3 files changed, 13 insertions, 3 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 024f99d8a9..bbfeb04372 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,5 +1,10 @@ 2000-04-18 Dan Winship <danw@helixcode.com> + * camel-mime-part.c (my_set_input_stream): + * camel-data-wrapper.c (set_input_stream, set_output_stream): do + better reference counting of streams so they actually go away + when they should. + * camel-log.[ch], *: Nuke camel log stuff. Replace calls to CAMEL_LOG_WARNING with calls to g_warning. diff --git a/camel/camel-data-wrapper.c b/camel/camel-data-wrapper.c index 3d05ae3b54..4f071e9063 100644 --- a/camel/camel-data-wrapper.c +++ b/camel/camel-data-wrapper.c @@ -143,8 +143,10 @@ set_input_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) if (!data_wrapper->output_stream && stream) set_output_stream (data_wrapper, stream); - if (stream) + if (stream) { gtk_object_ref (GTK_OBJECT (stream)); + gtk_object_sink (GTK_OBJECT (stream)); + } } /** @@ -201,8 +203,10 @@ set_output_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) gtk_object_unref (GTK_OBJECT (data_wrapper->output_stream)); data_wrapper->output_stream = stream; - if (stream) + if (stream) { gtk_object_ref (GTK_OBJECT (stream)); + gtk_object_sink (GTK_OBJECT (stream)); + } } /** diff --git a/camel/camel-mime-part.c b/camel/camel-mime-part.c index 9733eb31b1..ca4f71dc31 100644 --- a/camel/camel-mime-part.c +++ b/camel/camel-mime-part.c @@ -816,7 +816,8 @@ my_set_input_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) mime_part->content_input_stream = camel_seekable_substream_new_with_seekable_stream_and_bounds (seekable_stream, content_stream_inf_bound, -1); - + gtk_object_ref (GTK_OBJECT (mime_part->content_input_stream)); + gtk_object_sink (GTK_OBJECT (mime_part->content_input_stream)); } |