void _ejs_process_init(ejsval global, uint32_t argc, char **argv) { _ejs_Process = _ejs_object_new (_ejs_null, &_ejs_Object_specops); _ejs_object_setprop (global, _ejs_atom_process, _ejs_Process); ejsval _argv = _ejs_array_new (argc, EJS_FALSE); _ejs_object_setprop (_ejs_Process, _ejs_atom_argv, _argv); for (int i = 0; i < argc; i ++) _ejs_object_setprop (_argv, NUMBER_TO_EJSVAL(i), _ejs_string_new_utf8(argv[i])); #define OBJ_PROP(x) EJS_INSTALL_ATOM_GETTER(_ejs_Process, x, _ejs_Process_get_##x) #define OBJ_METHOD(x) EJS_INSTALL_ATOM_FUNCTION(_ejs_Process, x, _ejs_Process_##x) OBJ_PROP(env); OBJ_METHOD(exit); OBJ_METHOD(chdir); OBJ_METHOD(cwd); #undef OBJ_PROP #undef OBJ_METHOD }
return SUCCESS; } zend_object_value _http_requestpool_object_new(zend_class_entry *ce TSRMLS_DC) { zend_object_value ov; http_requestpool_object *o; o = ecalloc(1, sizeof(http_requestpool_object)); o->zo.ce = ce; http_request_pool_init(&o->pool); ALLOC_HASHTABLE(OBJ_PROP(o)); zend_hash_init(OBJ_PROP(o), zend_hash_num_elements(&ce->default_properties), NULL, ZVAL_PTR_DTOR, 0); zend_hash_copy(OBJ_PROP(o), &ce->default_properties, (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *)); ov.handle = putObject(http_requestpool_object, o); ov.handlers = &http_requestpool_object_handlers; return ov; } void _http_requestpool_object_free(zend_object *object TSRMLS_DC) { http_requestpool_object *o = (http_requestpool_object *) object; http_request_pool_dtor(&o->pool); freeObject(o); }