Skip to content

Commit

Permalink
Merge pull request #184 from do-aki/groonga-php
Browse files Browse the repository at this point in the history
php binding holds some problems of memory

Patch by do_aki. Thanks!!!
  • Loading branch information
kou committed Aug 8, 2014
2 parents 5cdc1ab + ca27a6c commit 9adf510
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 14 deletions.
19 changes: 5 additions & 14 deletions bindings/php/groonga.c
Expand Up @@ -120,20 +120,11 @@ PHP_FUNCTION(grn_ctx_close)
zval *res = NULL;
int res_id = -1;

grn_ctx *ctx;
grn_rc rc;


if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &res) == FAILURE) {
return;
}

ZEND_FETCH_RESOURCE(ctx, grn_ctx *, &res, res_id, "grn_ctx", le_grn_ctx);

if ((rc = grn_ctx_close(ctx)) != GRN_SUCCESS) {
RETURN_FALSE;
}

zend_list_delete(Z_LVAL_P(res)); // call grn_ctx_dtor
RETURN_TRUE;
}

Expand Down Expand Up @@ -201,10 +192,6 @@ PHP_FUNCTION(grn_ctx_recv)
int flags;
unsigned int str_len, qid;

MAKE_STD_ZVAL(ret);

array_init(ret);
array_init(return_value);

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &res) == FAILURE) {
return;
Expand All @@ -218,6 +205,10 @@ PHP_FUNCTION(grn_ctx_recv)
RETURN_FALSE;
}

MAKE_STD_ZVAL(ret);
array_init(ret);
array_init(return_value);

add_next_index_long(ret, flags);
add_next_index_stringl(ret, str, str_len, 1);

Expand Down
29 changes: 29 additions & 0 deletions bindings/php/tests/001.phpt
@@ -0,0 +1,29 @@
--TEST--
groonga connection
--DESCRIPTION--
required: variables_order includes "E"
--SKIPIF--
<?php
if (!extension_loaded("groonga")) print "skip";
if (!getenv('GROONGA_TEST_HOST')) print "skip";
?>
--FILE--
<?php
$host = getenv('GROONGA_TEST_HOST');
$port = getenv('GROONGA_TEST_PORT') ? getenv('GROONGA_TEST_PORT') : 10041;

$grn = grn_ctx_init();
grn_ctx_connect($grn, $host, $port) or die("cannot connect groong server ({$host}:{$port})");
grn_ctx_send($grn, 'table_list');
var_dump(grn_ctx_recv($grn));
grn_ctx_close($grn);
--EXPECTF--
array(1) {
[0]=>
array(2) {
[0]=>
int(0)
[1]=>
string(%d) "%s"
}
}

0 comments on commit 9adf510

Please sign in to comment.