LINUX.ORG.RU

История изменений

Исправление slackwarrior, (текущая версия) :

Он не суперсет js — т.е. СБИШ, которые опу придется изучить :) Например, банальный возврат отрицательного числа из скриптовой функции через return внезапно превращается в 0, т.к. AS возвращает asQUAD, asWORD, asBYTE, которые все unsigned

        //angelscript.h
	// Return value
	virtual asBYTE  GetReturnByte() = 0;
	virtual asWORD  GetReturnWord() = 0;
	virtual asDWORD GetReturnDWord() = 0;
	virtual asQWORD GetReturnQWord() = 0;
	virtual float   GetReturnFloat() = 0;
	virtual double  GetReturnDouble() = 0;
	virtual void   *GetReturnAddress() = 0;
        //virtual asINT   GetReturnInt() = 0; где ?
        //virtual asINT64   GetReturnInt64() = 0; где ?
и т.д., а «встроенные» int, int64 нет :) Их надо мапить либо через out параметры, либо еще как — m_reg.valueRegister для них в asQWORD содержит 0 («ашипка») вместо хотябы чего-то что можно конвертнуть :)

Исходная версия slackwarrior, :

Он не суперсет js — т.е. СБИШ, которые опу придется изучить :) Например, банальный возврат отрицательного числа из скриптовой функции через return внезапно превращается в 0, т.к. AS возвращает asQUAD, asWORD, asBYTE, которые все unsigned

        //angelscript.h
	// Return value
	virtual asBYTE  GetReturnByte() = 0;
	virtual asWORD  GetReturnWord() = 0;
	virtual asDWORD GetReturnDWord() = 0;
	virtual asQWORD GetReturnQWord() = 0;
	virtual float   GetReturnFloat() = 0;
	virtual double  GetReturnDouble() = 0;
	virtual void   *GetReturnAddress() = 0;
        //virtual asINT   GetReturnInt() = 0; где ?
        //virtual asINT64   GetReturnInt() = 0; где ?
и т.д., а «встроенные» int, int64 нет :) Их надо мапить либо через out параметры, либо еще как — m_reg.valueRegister для них в asQWORD содержит 0 («ашипка») вместо хотябы чего-то что можно конвертнуть :)