protected function makeFreeBlock(array $freeFlags)
{
$freeBlock = [];
foreach ($freeFlags as $name => $type) {
switch ($type) {
case 'zend_string*':
$freeBlock[] = "if (free_{$name}) { zend_string_release({$name}); }";
break;
case 'HashTable*':
$freeBlock[] = "if (free_{$name}) { hashtable_release({$name}); }";
default:
throw new \LogicException("Unknown free type: {$type}");
}
}
return implode("\n\t", $freeBlock);
}