{"push_id":820438968,"size":1,"distinct_size":1,"ref":"refs/heads/keyUnion","head":"a1d7699a22ceb84942ffec25798e909ff575b3dd","before":"7ca9c8ab53e337c74fc31bf4fe1dff73da8432e1","commits":[{"sha":"a1d7699a22ceb84942ffec25798e909ff575b3dd","author":{"email":"8aa7b04b52a50173f3cb3ce186a483402ca3f427@php.net","name":"Nikita Popov"},"message":"Implement key union\n\nHashtable bucket keys are now represented using a union:\n\n    union zend_bucket_key {\n        zend_string *str;\n        zend_ulong num;\n    }\n\nThe bucket->h value is now a pure hash and no longer doubles as\nbeing the integer key value.\n\nThe top bit of bucket->h (HT_IS_STR_BIT) determines whether the\nkey is a string or and integer. We can do this, because the top\nbit will always be 1 after hashtable mask application, so its\nvalue does not influence bucket distribution quality.\n\nThe zend_hash_integer() function is a bit of a misnomer -- introducing\ninteger hashing is not as simple as replacing this function.","distinct":true,"url":"https://api.github.com/repos/nikic/php-src/commits/a1d7699a22ceb84942ffec25798e909ff575b3dd"}]}