Handle<Script> Factory::NewScript(Handle<String> source) { // Generate id for this script. int id; if (Heap::last_script_id()->IsUndefined()) { // Script ids start from one. id = 1; } else { // Increment id, wrap when positive smi is exhausted. id = Smi::cast(Heap::last_script_id())->value(); id++; if (!Smi::IsValid(id)) { id = 0; } } Heap::SetLastScriptId(Smi::FromInt(id)); // Create and initialize script object. Handle<Proxy> wrapper = Factory::NewProxy(0, TENURED); Handle<Script> script = Handle<Script>::cast(NewStruct(SCRIPT_TYPE)); script->set_source(*source); script->set_name(Heap::undefined_value()); script->set_id(Heap::last_script_id()); script->set_line_offset(Smi::FromInt(0)); script->set_column_offset(Smi::FromInt(0)); script->set_data(Heap::undefined_value()); script->set_context_data(Heap::undefined_value()); script->set_type(Smi::FromInt(Script::TYPE_NORMAL)); script->set_compilation_type(Smi::FromInt(Script::COMPILATION_TYPE_HOST)); script->set_wrapper(*wrapper); script->set_line_ends(Heap::undefined_value()); script->set_eval_from_function(Heap::undefined_value()); script->set_eval_from_instructions_offset(Smi::FromInt(0)); return script; }
void minit_vsapsv() { if( vsapServEnv == 0 ){ vsapServEnv = NewStruct(VsapServEnv); bind_exlock = -1; bind_nlisten = -1; } }
void SetImplicitArgs(TArray<PType *> *args, TArray<DWORD> *argflags, TArray<FName> *argnames, PStruct *cls, DWORD funcflags, int useflags) { // Must be called before adding any other arguments. assert(args == nullptr || args->Size() == 0); assert(argflags == nullptr || argflags->Size() == 0); if (funcflags & VARF_Method) { // implied self pointer if (args != nullptr) args->Push(NewPointer(cls)); if (argflags != nullptr) argflags->Push(VARF_Implicit | VARF_ReadOnly); if (argnames != nullptr) argnames->Push(NAME_self); } if (funcflags & VARF_Action) { // implied caller and callingstate pointers if (args != nullptr) { // Special treatment for weapons and CustomInventory flagged functions: 'self' is not the defining class but the actual user of the item, so this pointer must be of type 'Actor' if (useflags & (SUF_WEAPON|SUF_ITEM)) { args->Insert(0, NewPointer(RUNTIME_CLASS(AActor))); // this must go in before the real pointer to the containing class. } else { args->Push(NewPointer(cls)); } args->Push(NewPointer(NewStruct("FStateParamInfo", nullptr))); } if (argflags != nullptr) { argflags->Push(VARF_Implicit | VARF_ReadOnly); argflags->Push(VARF_Implicit | VARF_ReadOnly); } if (argnames != nullptr) { argnames->Push(NAME_invoker); argnames->Push(NAME_stateinfo); } } }
/* * CLIENT */ #define FOR_CONNECT 1 #define FOR_ACCEPT 2 #define FOR_HTCONNECT 0x10 #define FOR_HTBIND 0x20 #define FOR_HTACCEPT 0x40 #define FOR_HTALL (FOR_HTCONNECT|FOR_HTBIND|FOR_HTACCEPT) typedef struct { const char *r_host; int r_port; const char *r_hostport; char r_methods; /* CONNECT, ACCEPT */ const char *r_hosts; /* remote client/server hosts to be relayed ? */ } ServerV; typedef struct { ServerV ve_serverV[8]; int ve_serverX; const char *ve_Socknames[256]; /**/ const char *ve_Peernames[256]; /**/ } VsapClntEnv; static VsapClntEnv *vsapClntEnv; #define serverV vsapClntEnv->ve_serverV #define serverX vsapClntEnv->ve_serverX #define Socknames vsapClntEnv->ve_Socknames #define Peernames vsapClntEnv->ve_Peernames #ifndef OPT_S /*{*/ void minit_vsapcl(){ if( vsapClntEnv == 0 ) vsapClntEnv = NewStruct(VsapClntEnv); }
void minit_icache() { if( iCacheEnv == 0 ) iCacheEnv = NewStruct(ICacheEnv); }
Handle<AccessorInfo> Factory::NewAccessorInfo() { Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(NewStruct(ACCESSOR_INFO_TYPE)); info->set_flag(0); // Must clear the flag, it was initialized as undefined. return info; }