aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-simple-data-wrapper.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-simple-data-wrapper.c')
-rw-r--r--camel/camel-simple-data-wrapper.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/camel/camel-simple-data-wrapper.c b/camel/camel-simple-data-wrapper.c
index eaf62bb0a7..a2203a52e8 100644
--- a/camel/camel-simple-data-wrapper.c
+++ b/camel/camel-simple-data-wrapper.c
@@ -122,28 +122,36 @@ static void
_construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream)
{
CamelSimpleDataWrapper *simple_data_wrapper = CAMEL_SIMPLE_DATA_WRAPPER (data_wrapper);
- guint current_index;
- guint nb_bytes_read;
- guint nb_bytes_left;
+ gint nb_bytes_read;
static gchar *tmp_buf;
GByteArray *array;
+
CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper:: Entering _construct_from_stream\n");
g_assert (data_wrapper);
g_assert (stream);
- if (!tmp_buf) tmp_buf = g_new (gchar, _CMSDW_TMP_BUF_SIZE);
-
+ if (!tmp_buf) {
+ CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::construct_from_stream allocating new temp buffer "
+ "with %d bytes\n", _CMSDW_TMP_BUF_SIZE);
+ tmp_buf = g_new (gchar, _CMSDW_TMP_BUF_SIZE);
+ }
+
array = simple_data_wrapper->byte_array;
- if (array)
+ if (array) {
+ CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::construct_from_stream freeing old byte array\n");
g_byte_array_free (array, FALSE);
+ }
array = g_byte_array_new();
+ CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::construct_from_stream new byte array address:%p\n", array);
simple_data_wrapper->byte_array = array;
- do {
+ nb_bytes_read = camel_stream_read (stream, tmp_buf, _CMSDW_TMP_BUF_SIZE);
+ while (nb_bytes_read>0) {
+ CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper::construct_from_stream read %d bytes from stream\n", nb_bytes_read);
+ if (nb_bytes_read>0) g_byte_array_append (array, tmp_buf, nb_bytes_read);
nb_bytes_read = camel_stream_read (stream, tmp_buf, _CMSDW_TMP_BUF_SIZE);
- if (nb_bytes_read) g_byte_array_append (array, tmp_buf, nb_bytes_read);
- } while (nb_bytes_read);
+ };
CAMEL_LOG_FULL_DEBUG ("CamelSimpleDataWrapper:: Leaving _construct_from_stream\n");
}