libpurple/memorypool.c

changeset 35688
3d727b2e6f82
parent 35683
8b6b8a3b5039
child 35733
60a5d065ca81
equal deleted inserted replaced
35687:cc08e570d7d5 35688:3d727b2e6f82
126 if (real_size < size) 126 if (real_size < size)
127 real_size = size; 127 real_size = size;
128 blk = purple_memory_pool_block_new(real_size); 128 blk = purple_memory_pool_block_new(real_size);
129 g_return_val_if_fail(blk != NULL, NULL); 129 g_return_val_if_fail(blk != NULL, NULL);
130 130
131 g_assert((priv->first_block == NULL) ==
132 (priv->last_block == NULL));
133
131 if (priv->first_block == NULL) { 134 if (priv->first_block == NULL) {
132 priv->first_block = blk; 135 priv->first_block = blk;
133 priv->last_block = blk; 136 priv->last_block = blk;
134 } else { 137 } else {
135 priv->last_block->next = blk; 138 priv->last_block->next = blk;
158 161
159 g_return_if_fail(priv != NULL); 162 g_return_if_fail(priv != NULL);
160 163
161 blk = priv->first_block; 164 blk = priv->first_block;
162 priv->first_block = NULL; 165 priv->first_block = NULL;
166 priv->last_block = NULL;
163 while (blk) { 167 while (blk) {
164 PurpleMemoryPoolBlock *next = blk->next; 168 PurpleMemoryPoolBlock *next = blk->next;
165 g_free(blk); 169 g_free(blk);
166 blk = next; 170 blk = next;
167 } 171 }

mercurial