In qh_intset.c:
static inline zend_object_value qh_object_new_intset_ex(zend_class_entry *class_type, php_qh_intset_obj **ptr TSRMLS_DC)
{
    php_qh_intset_obj *intern;
    zend_object_value retval;
    zval *tmp;

    intern = emalloc(sizeof(php_qh_intset_obj));
    memset(intern, 0, sizeof(php_qh_intset_obj));
    if (ptr) {
        *ptr = intern;
    }

    zend_object_std_init(&intern->std, class_type TSRMLS_CC);
#if PHP_MINOR_VERSION > 3
    object_properties_init(&intern->std, class_type);
#else
    zend_hash_copy(intern->std.properties, &class_type->default_properties, 
        (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
#endif

    retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object,
        (zend_objects_free_object_storage_t) qh_object_free_storage_intset, NULL TSRMLS_CC);
    retval.handlers = &qh_object_handlers_intset;
    
    return retval;
}

static zend_object_value qh_object_new_intset(zend_class_entry *class_type TSRMLS_DC)
{   
    return qh_object_new_intset_ex(class_type, NULL TSRMLS_CC);
}

static void qh_object_free_storage_intset(void *object TSRMLS_DC)
{   
    php_qh_intset_obj *intern = (php_qh_intset_obj *) object;
    
    if (intern->hash) {
        qho *tmp_options = intern->hash->options;
        
        qhi_free(intern->hash);
        qho_free(tmp_options);
    }
    
    zend_object_std_dtor(&intern->std TSRMLS_CC);
    efree(object);
}