update
This commit is contained in:
parent
0c9948ad84
commit
a3b35a865e
|
@ -33,3 +33,5 @@ tests/*/*.php
|
||||||
tests/*/*.exp
|
tests/*/*.exp
|
||||||
tests/*/*.log
|
tests/*/*.log
|
||||||
tests/*/*.sh
|
tests/*/*.sh
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
|
@ -2098,7 +2098,7 @@ PHP_METHOD(Collection, takeLast)
|
||||||
ARRAY_NEW(new_collection, n > num_elements ? num_elements : n);
|
ARRAY_NEW(new_collection, n > num_elements ? num_elements : n);
|
||||||
uint32_t idx = current->nNumUsed;
|
uint32_t idx = current->nNumUsed;
|
||||||
zend_long num_taken = n;
|
zend_long num_taken = n;
|
||||||
Bucket* taken[num_taken];
|
Bucket** taken = (Bucket**)malloc(num_taken * sizeof(Bucket*));
|
||||||
// Note that the original element orders should be preserved as in kotlin.
|
// Note that the original element orders should be preserved as in kotlin.
|
||||||
for (; num_taken > 0 && idx > 0; --idx)
|
for (; num_taken > 0 && idx > 0; --idx)
|
||||||
{
|
{
|
||||||
|
@ -2132,6 +2132,7 @@ PHP_METHOD(Collection, takeLast)
|
||||||
zend_hash_index_add_new(new_collection, bucket->h, &bucket->val);
|
zend_hash_index_add_new(new_collection, bucket->h, &bucket->val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
free(taken);
|
||||||
RETVAL_NEW_COLLECTION(new_collection);
|
RETVAL_NEW_COLLECTION(new_collection);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2146,7 +2147,7 @@ PHP_METHOD(Collection, takeLastWhile)
|
||||||
zend_array* current = COLLECTION_FETCH_CURRENT();
|
zend_array* current = COLLECTION_FETCH_CURRENT();
|
||||||
ARRAY_NEW_EX(new_collection, current);
|
ARRAY_NEW_EX(new_collection, current);
|
||||||
uint32_t num_elements = zend_hash_num_elements(current);
|
uint32_t num_elements = zend_hash_num_elements(current);
|
||||||
Bucket* taken[num_elements];
|
Bucket** taken = (Bucket**)malloc(num_elements * sizeof(Bucket*));
|
||||||
ZEND_HASH_REVERSE_FOREACH_BUCKET(current, Bucket* bucket)
|
ZEND_HASH_REVERSE_FOREACH_BUCKET(current, Bucket* bucket)
|
||||||
CALLBACK_KEYVAL_INVOKE(params, bucket);
|
CALLBACK_KEYVAL_INVOKE(params, bucket);
|
||||||
if (zend_is_true(&retval))
|
if (zend_is_true(&retval))
|
||||||
|
@ -2182,6 +2183,7 @@ PHP_METHOD(Collection, takeLastWhile)
|
||||||
zend_hash_index_add_new(new_collection, bucket->h, &bucket->val);
|
zend_hash_index_add_new(new_collection, bucket->h, &bucket->val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
free(taken);
|
||||||
RETVAL_NEW_COLLECTION(new_collection);
|
RETVAL_NEW_COLLECTION(new_collection);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue