void print_pri(pri *pd) { switch(PriScope(pd)) { case QUALI: p_fprintf(current_output_, "QUALI "); break; case LOCAL: p_fprintf(current_output_, "LOCAL "); break; case EXPORT: p_fprintf(current_output_, "EXPORT "); break; case IMPORT: p_fprintf(current_output_, "IMPORT "); break; case DEFAULT: p_fprintf(current_output_, "DEFAUL "); break; case IMPEXP: p_fprintf(current_output_, "IMPEXP "); break; default: p_fprintf(current_output_, "?????? "); break; } p_fprintf(current_output_, "in %12s from %12s", DidName(pd->module_def), pd->module_ref? DidName(pd->module_ref) : "UNKNOWN"); p_fprintf(current_output_, " %c%c%c %c %c%c%c%c%c %c%c%c%c%c %c%c%c %01x p%d", pd->flags&SYSTEM ? 'S' : '_', pd->flags&NOREFERENCE ? 'N' : '_', pd->flags&CODE_DEFINED ? 'C' : '_', pd->flags&TO_EXPORT ? 'X' : '_', pd->flags&PROC_PARALLEL ? 'P' : '_', pd->flags&PROC_DEMON ? 'D' : '_', pd->flags&TOOL ? 'T' : '_', pd->flags&AUTOLOAD ? 'A' : '_', pd->flags&PROC_DYNAMIC ? 'Y' : '_', pd->flags&DEBUG_TR ? 'T' : '_', pd->flags&DEBUG_SP ? 'P' : '_', pd->flags&DEBUG_SK ? 'K' : '_', pd->flags&DEBUG_DB ? 'D' : '_', pd->flags&DEBUG_ST ? 'S' : '_', (pd->flags&(CODETYPE)) == VMCODE ? 'v' : 'f', (pd->flags&(ARGPASSING)) == ARGFIXEDWAM ? 'a' : (pd->flags&(ARGPASSING)) == ARGFLEXWAM ? 'f' : '?', pd->flags&EXTERN ? 'X' : '_', pd->flags&(UNIFTYPE), PriPriority(pd)); if (!PriCode(pd)) p_fprintf(current_output_, " null_code"); else if ((PriCodeType(pd) == VMCODE) && IsUndefined(PriCode(pd))) p_fprintf(current_output_, " undef_code"); else p_fprintf(current_output_, " 0x%x", PriCode(pd)); ec_newline(current_output_); }
Local<String> V8EngineProxy::GetErrorMessage(TryCatch &tryCatch) { auto msg = tryCatch.Exception()->ToString(); auto stack = tryCatch.StackTrace(); bool showStackMsg = !stack.IsEmpty() && !stack->IsUndefined(); Local<String> stackStr; if (showStackMsg) { stackStr = stack->ToString(); // ... detect if the start of the stack message is the same as the exception message, then remove it (seems to happen when managed side returns an error) ... if (stackStr->Length() >= msg->Length()) { uint16_t* ss = new uint16_t[stackStr->Length() + 1]; stack->ToString()->Write(ss); auto subStackStr = NewSizedUString(ss, msg->Length()); auto stackPartStr = NewSizedUString(ss + msg->Length(), stackStr->Length() - msg->Length()); delete[] ss; if (msg->Equals(subStackStr)) stackStr = stackPartStr; } } msg = msg->Concat(msg, NewString("\r\n")); msg = msg->Concat(msg, NewString(" Line: ")); auto line = NewInteger(tryCatch.Message()->GetLineNumber())->ToString(); msg = msg->Concat(msg, line); msg = msg->Concat(msg, NewString(" Column: ")); auto col = NewInteger(tryCatch.Message()->GetStartColumn())->ToString(); msg = msg->Concat(msg, col); msg = msg->Concat(msg, NewString("\r\n")); if (showStackMsg) { msg = msg->Concat(msg, NewString(" Stack: ")); msg = msg->Concat(msg, stackStr); msg = msg->Concat(msg, NewString("\r\n")); } return msg; }
bool OnClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen){ auto client = new SMJS_Client(pEntity); clients[client->entIndex] = client; SMJS_Plugin *pl = NULL; auto returnValue = self->CallGlobalFunctionWithWrapped("OnClientConnect", client, &pl, true); if(pl == NULL) return true; HandleScope handle_scope(pl->GetIsolate()); Context::Scope context_scope(pl->GetContext()); if(!returnValue->IsUndefined() && !returnValue->IsNull()){ snprintf(reject, maxrejectlen, "%s", *v8::String::Utf8Value(returnValue->ToString())); RETURN_META_VALUE(MRES_SUPERCEDE, false); } return true; }
int MapOrientation(double cosThis, double cosNext, double cutOff){ if(IsLeft(cosThis, cutOff) && IsLeft(cosNext, cutOff)){ return 0; } if(IsLeft(cosThis, cutOff) && IsRight(cosNext, cutOff)){ return 1; } if(IsLeft(cosThis, cutOff) && IsUndefined(cosNext, cutOff)){ return 2; } if(IsRight(cosThis, cutOff) && IsLeft(cosNext, cutOff)){ return 3; } if(IsRight(cosThis, cutOff) && IsRight(cosNext, cutOff)){ return 4; } if(IsRight(cosThis, cutOff) && IsUndefined(cosNext, cutOff)){ return 5; } if(IsUndefined(cosThis, cutOff) && IsLeft(cosNext, cutOff)){ return 6; } if(IsUndefined(cosThis, cutOff) && IsRight(cosNext, cutOff)){ return 7; } if(IsUndefined(cosThis, cutOff) && IsUndefined(cosNext, cutOff)){ return 8; } return 999; }