ZEND_FUNCTION(c2delphiwrapper_loader)
{
char *class_name;
int class_name_len;
if (zend_parse_parameters(1 TSRMLS_CC, "s", &class_name, &class_name_len) == FAILURE) {
zend_error(E_ERROR, "Wrong call method", "");
RETURN_FALSE;
}
if (strcmp(class_name, "Delphi\\") == 1) {
zend_class_entry e, *ce;
char *obj_lqcn = (char *)emalloc(class_name_len + 1);
char *obj_qcn = estrndup(class_name, class_name_len);
zend_str_tolower_copy(obj_lqcn, class_name, class_name_len);
INIT_CLASS_ENTRY(e, obj_qcn, NULL);
e.name = obj_qcn;
e.name_length = class_name_len;
ce = (zend_class_entry*)emalloc(sizeof(zend_class_entry));
*ce = e;
zend_initialize_class_data(ce, 0 TSRMLS_CC);
zend_hash_add(CG(class_table), obj_lqcn, class_name_len + 1, (void **)&ce, sizeof(zend_class_entry *), NULL);
zend_do_inheritance(ce, c2dw_class_entry TSRMLS_CC);
RETURN_TRUE;
} else {
RETURN_FALSE;
}
}