Example #1
0
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_);
}
Example #2
0
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;
}
Example #3
0
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;
}
Example #4
0
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;
}