Using ecalloc() to create objects is expensive, because the
dynamic-size memset() is unreasonably slow. Make sure we only
zero the main object structure with known size, as the properties
are intialized separately anyway.
Technically we do not need to zero the embedded zend_object
structure either, but as long as the memset argument is constant,
a couple more bytes don't really matter.
As the actual behavior change happens with ICU >= 58, the new
functionality should stay same in the lower versions. This comply also
with lower PHP versions so far.
Switch to size_t
Not critical as an unsigned is already used, but fixes a couple of
warnings in other areas.
Normalize signature
It's a function with the usual compare semantics, returning a platform
specific at least produces unnecessary warnings elsewhere and is otherwise
inappropriate.
Fix return value
Drop unused var
Fix compiler warnings
Fix compiler warning
Fix var name in arginfo
Fix cast