Skip to content

Commit e937fb5

Browse files
committed
Fix object release memory leaks #30
1 parent 057280d commit e937fb5

37 files changed

+56
-49
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
All notable changes to this project will be documented in this file.
33
This project adheres to [Semantic Versioning](http://semver.org/).
44

5+
## [1.1.1] - 2016-08-04
6+
### Fixed
7+
- Multiple memory leaks where objects were not free'd correctly. #30
8+
59
## [1.1.0] - 2016-08-04
610
### Added
711
- `Pair::copy`
@@ -16,7 +20,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
1620
- `Set::merge`
1721

1822
### Fixed
19-
- ds_htable_put_next bucket rehash fix (see docs #4)
23+
- ds_htable_put_next bucket rehash fix
2024
-
2125
## [1.0.2] - 2016-07-31
2226
### Added

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[![Build Status](https://travis-ci.org/php-ds/extension.svg?branch=master)](https://travis-ci.org/php-ds/extension)
44
[![Build status](https://ci.appveyor.com/api/projects/status/dbcssp6flml2gher?svg=true)](https://ci.appveyor.com/project/rtheunissen/extension)
5-
[![PECL](https://img.shields.io/badge/PECL-1.0.5-blue.svg)](https://pecl.php.net/package/ds)
5+
[![PECL](https://img.shields.io/badge/PECL-1.1.1-blue.svg)](https://pecl.php.net/package/ds)
66

77
## Documentation
88

package.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
<active>yes</active>
1818
</lead>
1919
<date>2016-08-04</date>
20-
<time>05:02:13</time>
20+
<time>05:35:40</time>
2121
<version>
22-
<release>1.1.0</release>
22+
<release>1.1.1</release>
2323
<api>1.1.0</api>
2424
</version>
2525
<stability>
@@ -28,7 +28,7 @@
2828
</stability>
2929
<license uri="https://opensource.org/licenses/MIT">MIT License</license>
3030
<notes>
31-
Add Pair::copy
31+
Fix memory leaks where objects were not free'd correctly
3232
</notes>
3333
<contents>
3434
<dir name="/">

php_ds.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ extern zend_module_entry ds_module_entry;
2020
#define phpext_ds_ptr &ds_module_entry
2121

2222
/* Replace with version number for your extension */
23-
#define PHP_DS_VERSION "1.1.0"
23+
#define PHP_DS_VERSION "1.1.1"
2424

2525
#ifdef PHP_WIN32
2626
# define PHP_API __declspec(dllexport)

src/ds/ds_deque.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,11 @@ void ds_deque_clear(ds_deque_t *deque)
194194
deque->size = 0;
195195
}
196196

197-
void ds_deque_destroy(ds_deque_t *deque)
197+
void ds_deque_free(ds_deque_t *deque)
198198
{
199199
ds_deque_clear(deque);
200200
efree(deque->buffer);
201+
efree(deque);
201202
}
202203

203204
/**

src/ds/ds_deque.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ ds_deque_t *ds_deque_clone(ds_deque_t *src);
3737
ds_deque_t *ds_deque_from_buffer(zval *buffer, zend_long size);
3838

3939
void ds_deque_clear(ds_deque_t *deque);
40-
void ds_deque_destroy(ds_deque_t *deque);
40+
void ds_deque_free(ds_deque_t *deque);
4141
void ds_deque_allocate(ds_deque_t *deque, zend_long capacity);
4242

4343
void ds_deque_push(ds_deque_t *deque, zval *value);

src/ds/ds_htable.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ void ds_htable_clear(ds_htable_t *table)
473473
table->next = 0;
474474
}
475475

476-
void ds_htable_destroy(ds_htable_t *table)
476+
void ds_htable_free(ds_htable_t *table)
477477
{
478478
ds_htable_clear(table);
479479

@@ -934,7 +934,7 @@ ds_htable_t *ds_htable_map(ds_htable_t *table, FCI_PARAMS)
934934
fci.retval = &retval;
935935

936936
if (zend_call_function(&fci, &fci_cache) == FAILURE || Z_ISUNDEF(retval)) {
937-
ds_htable_destroy(clone);
937+
ds_htable_free(clone);
938938
return NULL;
939939
} else {
940940
zval_ptr_dtor(&dst->value);
@@ -980,7 +980,7 @@ ds_htable_t *ds_htable_filter_callback(ds_htable_t *table, FCI_PARAMS)
980980
fci.retval = &retval;
981981

982982
if (zend_call_function(&fci, &fci_cache) == FAILURE || Z_ISUNDEF(retval)) {
983-
ds_htable_destroy(filtered);
983+
ds_htable_free(filtered);
984984
return NULL;
985985
} else {
986986
if (zend_is_true(&retval)) {

src/ds/ds_htable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ bool ds_htable_has_value(ds_htable_t *h, zval *value);
176176
int ds_htable_remove(ds_htable_t *h, zval *key, zval *return_value);
177177
void ds_htable_put(ds_htable_t *h, zval *key, zval *value);
178178
void ds_htable_to_array(ds_htable_t *h, zval *arr);
179-
void ds_htable_destroy(ds_htable_t *h);
179+
void ds_htable_free(ds_htable_t *h);
180180
zval *ds_htable_get(ds_htable_t *h, zval *key);
181181
ds_htable_t *ds_htable_slice(ds_htable_t *table, zend_long index, zend_long length);
182182

src/ds/ds_map.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,8 +351,8 @@ void ds_map_sum(ds_map_t *map, zval *return_value)
351351
DS_HTABLE_FOREACH_END();
352352
}
353353

354-
void ds_map_destroy(ds_map_t *map)
354+
void ds_map_free(ds_map_t *map)
355355
{
356-
ds_htable_destroy(map->table);
356+
ds_htable_free(map->table);
357357
efree(map);
358358
}

src/ds/ds_map.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ ds_map_t *ds_map();
1717
ds_map_t *ds_map_clone(ds_map_t *map);
1818

1919
void ds_map_clear(ds_map_t *map);
20-
void ds_map_destroy(ds_map_t *map);
20+
void ds_map_free(ds_map_t *map);
2121

2222
void ds_map_reverse(ds_map_t *map);
2323
ds_map_t *ds_map_reversed(ds_map_t *map);

0 commit comments

Comments
 (0)