zend_ulong getClassAndFunctionHashFromExecuteData()

in prod/native/libphpbridge/code/Helpers.cpp [41:55]


zend_ulong getClassAndFunctionHashFromExecuteData(zend_execute_data *execute_data) {
    if (!execute_data || !execute_data->func || !execute_data->func->common.function_name) {
        return 0;
    }

    zend_ulong classHash = 0;
    if (execute_data->func->common.scope && execute_data->func->common.scope->name) {
        classHash = ZSTR_HASH(execute_data->func->common.scope->name);
    }


    zend_ulong funcHash = ZSTR_HASH(execute_data->func->common.function_name);
    zend_ulong hash = classHash ^ (funcHash << 1);
    return hash;
}