65443f8f23
1c55f0bf23 Squash angelscript.master-modified-for-urho3d. REVERT: 76c92e1a7e Another attempt to merge upstream changes with local ones. REVERT: 4407e00f81 Adapt to AngelScript 2.33.0 WIP. REVERT: 2d1dcc5ace Travis CI: bump copyright to 2018. [cache clear] REVERT: 632c3f505a Add macro for checking the compiler's C++11 type trait templates. Modify angelscript.h header file to use our custom compiler define based on the check result to cater for pre-standard Clang compiler toolchain. REVERT: a8c35e00c4 Remove "execute" permission in the source files. [ci skip] REVERT: faa58bc4f1 Allow possibility of building Urho3D without C++ exceptions feature. Disallow Android build to turn off C++ RTTI feature. REVERT: 380964ffd8 Unconditionally disable the x86 syscall prologs / epilogs on GCC, since the assembler error related to cfi instructions could also happen on newer versions. REVERT: 4944524d01 Old GCC version check in as_callfunc_x86.cpp for CI. REVERT: 73aac66775 Restore Urho3D tweaks to as_config.h and earlier ifdef check for C++11 features. REVERT: d0dd6f54dc Restore earlier ifdef for AS type traits due to some Android CI builds failing. REVERT: 53bf0c68b4 Clang internal error workaround to as_callfunc_x86.cpp REVERT: 882e776ad1 Travis CI: bump copyright to 2017. [ccache clear] REVERT: b41f490557 Initial work to update to AngelScript 2.31.2. REVERT: 4619fb1240 Move the bits into places. REVERT: 3550aa1f60 - fixed a bug with symbol lookup introduced with the refactoring REVERT: 2e3a756923 - fixed a bug with symbol lookup introduced with the refactoring REVERT: f86ebb43fc - Continued the refactoring of symbol lookup so both function calls and variable access use the same logic - Virtual property accessors must not have the same name as real property or function in the same scope REVERT: 7265999643 - Refactored how he compiler does symbol lookups to better handle namespace hierarchies and child types. - The array's and string's length property accessor has been renamed to 'size' to avoid conflict with the length() method REVERT: 270856ff08 The copy constructor of script classes are now used properly by the compiler REVERT: af2c56e2ad - Fixed problem with use of unsafe references and global variables REVERT: c9e4bb6040 - When unsafe references is allowed the stream operator (<<) can now be implemented on value types with correct behaviour for chained expressions - The asBC_REFCPY and asBC_RefCpyV instructions can now be used with value types too REVERT: 0aa30f092b Fixed compiler error in as_callfunc_x86.cpp for gnuc/mingw when compiling with optimizations REVERT: 7707e9a22c CScriptAny now supports forwarding gc enum callbacks to value types with gc behaviour REVERT: c598c98ad0 CScriptGrid now support forwarding gc enum callbacks to value types with gc behaviour REVERT: d0a44858e4 Included SetCircularRefDetectedCallback to allow application developers to easier identify the origin of circular references REVERT: 2fea402a22 Fixed a bug when loading bytecode having identical shared functions in different namespaces REVERT: bf9480602b Fixed problem in compiler that didn't release a temporary variable when passing anonymous object to function expecting ?&in REVERT: 0a32333cf9 - AssignScriptObject will now set a script exception for ref types if asEP_DISALLOW_VALUE_ASSIGN_FOR_REF_TYPE is used - Initialization lists will implicitly assume objects by handle if asEP_DISALLOW_VALUE_ASSIGN_FOR_REF_TYPE is used REVERT: 1ef192e4cc Passing a string literal to function expecting &out will now give compiler error REVERT: 5c154f1ccb Fixed bug introduced in previous revision REVERT: 71d557fd6d Fixed assert failure on call to opCast(?&out) with a non-variable expression REVERT: fbfc3cbc5c Bytecode with external shared classes with virtual methods failed to load from bytecode REVERT: 5b97a695c8 The bytecode for external shared entities is no longer saved in the module when inherited from (additional fix when the same function was used in another class too) REVERT: 3b7448cd61 The bytecode for external shared entities is no longer saved in the module when inherited from REVERT: 21e4c65fb7 Fixed loading byte code that uses external shared classes in namespace REVERT: 19cb3e303f Reduced the size of the saved byte code, especially when there are lots of functions without parameters REVERT: ce6fe5b80b CScriptDictionary now supports forwarding gc enum callbacks to value types with gc behaviour REVERT: c102cf24a3 Added exception handling to the MSVC8 project REVERT: 3af7bab9d5 Initializing an ASHANDLE type with overloaded opHndlAssign taking a var type as a handle wasn't done correctly REVERT: 11600f0d96 - Added the engine methods ForwardGCEnumReferences and ForwardGCReleaseAllReferences - CScriptArray now supports forwarding gc enum callbacks to value types with gc behaviour REVERT: d787280628 - Registered value types can now register GC behaviours to solve circular references involving these types - CScriptHandle registers the ENUMREFS and RELEASEREFS gc behaviours REVERT: db6a199d60 CScriptBuilder now supports having multiple meta data blocks for each entity REVERT: e6da96550a auto declarations now works correctly with implicit handle types REVERT: 45194c3cf6 Fixed bug when loading bytecode containing shared interfaces with inheritance REVERT: 6c6f887d26 meta data is now correctly extracted for class methods with decorators REVERT: f982e0dc2a The correct resolution is now done for types implementing both opCast and opImplConv and the const overloads. The same for opConv and opImplConv REVERT: 7716d5479f Added MSVC 2017 projects REVERT: e7368f62a8 Fixed compiler error when both opConv and opImplConv are implemented REVERT: 6fafba3022 opImplCast with variable type won't be used for non-ref types REVERT: f8a9eaed89 Fixed memory build-up due to delayed cleanup when discarding modules with shared entities REVERT: 1649f60370 Further fixes related to template types and namespaces REVERT: 14b56414db Template types are now properly identified in separate namespaces REVERT: f0ed5e519f Fixed an error when compiling a class method call as post-op and the name matches a type name REVERT: e3ca22c65a Saving bytecode for a never returning function would cause assert failure REVERT: c8095307f3 Class constructors can now be declared with private and protected too REVERT: 64ab05ba0c Fixed error when saving bytecode for scripts containing interfaces that derives from interfaces REVERT: 8bd5d40097 weakref now properly identifies different object instance when the address is the same as the previously freed object REVERT: cbaa500fb3 Fixed compiler error on Linux REVERT: d0e37c201b Implemented a callback to allow application to translate C++ exceptions thrown by registered functions REVERT: 8037ae9a51 By default asEP_GENERIC_CALL_MODE is set to use the new behaviour REVERT: ef7d9a44ad Implemented engine property asEP_GENERIC_CALL_MODE to make the generic calling convention treat handles the same way that the native calling convention do REVERT: f15dcfcc56 Compiler would crash on compiling ternary operator with anonymous list in one of the conditions REVERT: aa7d45b60e Template types can now be registered with methods taking parameters as &inout REVERT: 12c7ab4d6c - Loading bytecode that included use of template value types with a template type as argument crashed - All methods for template instances now get unique functions to show the template instance as the object type REVERT: 32c4b235ba documentation REVERT: 18678f1da9 The compiler will now give an error on bitwise operator with floats instead of silently converting to integer REVERT: 400c54c299 Fixed bug with anonymous initialization lists when used to initialize value type passed by value to function REVERT: c168f89b4b - Fixed crash in debugger add-on when printing call stack in template function - Documented the script grammar in BNF - Added support for specifying parameter types to lambda functions REVERT: 80adf56b06 Minor refactoring to reduce some duplicated code for verifying if proceeding token sequence is a type REVERT: d8e324cad1 Engine error messages now include the symbol name for the error code for easier interpretation REVERT: c6803b2a0a - Implemented a #pragma callback in the builder add-on - asrun can now turn on debugging with #pragma debug (works the same as -d command arg) REVERT: 42c35611d6 Fixed incorrect use of setlocale in parseFloat REVERT: 18fc360ef2 Changed the compiler to do less copies of objects and especially string constants REVERT: ba12d89ea0 cmake changes REVERT: 9c93ca0c69 Fixed crash when compiling is null comparison with ASHANDLE object without any opEquals operator REVERT: 66e4471016 Changed the clean-up of the string factory in the stdstring add-on to avoid crash if the script engine is stored in global singleton REVERT: 1eb058cf24 - filesystem's changeCurrentPath doesn't modify anything if the new path is invalid - Implemented the methods makeDir, removeDir, deleteFile, copyFile, and move on the filesystem add-on REVERT: 76aeadd7f3 Updated the cmake project for better usability REVERT: bfd447ddcb The asrun sample now waits for user input before closing on any error when executed from file explorer on Windows REVERT: 153b385a1f Preparing the tests for new optimizations REVERT: 4dd0bd304a Added methods setDate and setTime to datetime add-on and operators to add seconds, compare, and determine difference in seconds REVERT: d50e15345c Added the methods IsLink and GetSize to filesystem add-on REVERT: 315252e5d1 Releasing 2.32.0 REVERT: 117d6a49cd Updating the config according to the new way of registering the string factory REVERT: 833178fcaf RefCastObject was allowing explicit cast from base class to derived class even though the true type was of the base class REVERT: d582d62bf4 Linux with ARM doesn't support catching c++ exceptions yet REVERT: 4232d7c0c8 Fixed problem on platforms where char is unsigned by default REVERT: c13e697abd Removed unnecessary include REVERT: 0270b00838 Increased initial buffer size in asCString::Format to work around problem on Linux REVERT: 3f5163be6c Fixed compiler warning REVERT: 827c153abe Fixed buffer overflow when formatting error message with very long tokens REVERT: 028f4cf94e Testing long tokens REVERT: 8b279427dd Corrections for Linux/GNUC REVERT: 5257e9234e Fixed an incorrect default arg REVERT: 38fb52292f - Implemented generic calling convention for the CScriptArray::Sort method with callback - Fixed compiler error with AS_NO_COMPILER - Fixed tests for AS_MAX_PORTABILITY REVERT: 8a5f493719 Documentation REVERT: 680bde46d5 - Documentation - Removed the option to turn off the new string factory REVERT: 11f1654449 Documentation REVERT: a49a9b59ba Documentation REVERT: 12d2dcae4d Documentation REVERT: cdc47e3c1f Documentation REVERT: 00b102d455 - Object properties can also be registered for composite objects - WriteConfigToStream and ConfigEngineFromStream properly handles composite properties - Debugger is capable of inspecting value of composite properties REVERT: d0896a561c Added support for registering class methods for composite types REVERT: 737a4dc5c0 Removed deprecated code from previous versions REVERT: c503c760b9 Changed how string literals are handled by the script engine. Now they are evaluated at compile time and a pointer to the application native string object is stored in the byte code. REVERT: 6f3df65557 Cleaning up REVERT: fc9738dc20 Compiler was allowing to pass a const object by reference to a parameter expecting a non-const when using unsafe references REVERT: 18cc16c9fd Saved byte code with scripts that used child funcdefs couldn't be loaded REVERT: 699cd4806f Value type without opAssign but with a copy constructor can now be implicitly copied in type conversions REVERT: af1cd92622 Explicitly creating a copy of a const object to get a non-const handle would give a compiler error REVERT: 6672b26d13 - Objects that rely on asGetActiveContext during clean-up can now do so even during exception handling - Dictionary storing a const handle now allows retrieving by value REVERT: c5ad0228ab cleaning up the test code a bit REVERT: 03d1e39c1e more cleanup in test code REVERT: 8b44cde9b4 - Both Read and Write in asIBinaryStream can now return an error code to signal failure - fixed compiler warnings in test applications REVERT: 49f44eaffa Fixed compilation error when the project path included space characters REVERT: 026b87b5b6 Code clean-up REVERT: 99d5a7d155 Using bit fields for function traits REVERT: 4f6b4f38f0 Fixed the asbuild sample config and script files REVERT: aa74157748 Minor code cleanup REVERT: 923f709dd3 Fixed assert failure when compiling expression with anonymous initialization list REVERT: f61dc2abc3 Fixed assert failure while compiling unary minus operator on constant integers smaller than 32 bits. REVERT: 570966664a Fixed crash in compiler when compiling type conversion with invalid use of named arguments REVERT: 393403156b Fixed assert failure when compiling comparison expressions with primitives smaller than 32bit REVERT: f610f7ed14 Fixed compiler error in deprecated IsHandleCompatibleWithObject when using AS_DEPRECATED REVERT: 3d0c058e3c Handles received by reference is now properly treated when passed to function expecting variant type REVERT: cb4ddab368 Improved compiler error message when identifier before parenthesis doesn't evaluate to a function REVERT: 8e58862e53 Fixed bug in compiler that would in complex expressions overwrite a temporary variable before it was used REVERT: 25ba4116f4 Fixed memory leak in RemoveGlobalProperty as the property wasn't uninitialized before it was removed REVERT: 87acdae676 Fixed compiler error with address sanitizer on g++ 5 REVERT: 4661e59bb9 Fixed rtti in test_refcast.cpp on gnuc REVERT: 679528d396 - minor tweaks to datetime.cpp add-on - additional regression tests for garbage collections and native calling convention with multiple inheritance REVERT: 0c46ee6ae6 Fixed bug where compiler didn't allow default arguments to be name of global functions REVERT: d36df794c9 The VM now raises an exception when application performs too many nested calls REVERT: 5c5602222a RegisterFuncdef, RegisterInterface, RegisterTypedef, RegisterEnum now returns the type id on success REVERT: be39c3c299 Implemented sort in CScriptArray that takes as input a script function to compare two elements REVERT: bbbcbad25e Template instances now correctly replaces child funcdefs REVERT: ba3a9d0fe2 Child funcdefs of template instances are now released together with the template instance type rather than at the shutdown of the engine REVERT: 70e6b2d506 Fixed assert failure when compiling ref cast and multiple matching cast operators are found REVERT: af747c88ca Improved compiler error messages with anonymous initialization lists REVERT: 44aaca6cf7 Fixed bug in parser that would produce misleading error message on invalid code REVERT: 9e22deffe6 Implemented support for typeless anonymous initialization lists REVERT: 5fc02ac206 WriteConfigToStream now resets the namespace for the string factory REVERT: 0e892a7395 Saving the noDebugInfo flag in a platform independent way REVERT: f695abcad2 Fixed a couple of bugs on platforms with 4 byte booleans REVERT: 07a5b91412 Documentation REVERT: 1f75a0e039 - Fixed compiler warning in engine - Added proper error messages if external shared entities are not found while loading bytecode REVERT: c8551eff54 Saved bytecode now takes advantage of shared funcdefs and functions declared as external and includes less bytes REVERT: 3c31e25425 Saved bytecode now takes advantage of shared enums, classes, and interfaces declared as external and includes less bytes REVERT: 1d730f3bc7 - ScriptBuilder add-on now support metadata for enums too - ScriptBuilder add-on properly handles 'external' and 'shared' keywords when parsing metadata REVERT: 33462b453c - funcdefs can now be explicitly declared as shared - shared funcdefs can also be declared as external REVERT: 404c5739e0 shared functions can also be declared as external REVERT: 445ebcb958 shared classes can also be declared as external REVERT: 3cdec2d340 shared interfaces can also be declared as external REVERT: 9d3c51b1fa Can now declared shared enums as external to explicitly inform that the enum should be included from previously compiled module REVERT: 47df85f289 Fixed crash when compiling expression using opIndex property accessor without arguments REVERT: d4475e8b4c Fixed macro redefinition warning REVERT: b50c53fa2a Fixed problem with calling function expecting @&in where the argument was itself a & argument REVERT: eb753e5b0a Fixed problem that could happen when saving bytecode that used shared classes REVERT: bdadb13885 Fixed problem that could happen when saving bytecode that used shared functions REVERT: d0498a4c96 Fixed problem with SetDefaultNamespace and nested namespaces REVERT: 3c9642bc3a Fixed compiler error in asFUNCTIONPR on MSVC2017 REVERT: 1195178d0a Handles explicitly initialized with null in declarations no longer produce any bytecode REVERT: bdb4bb7fbc Fixed the symbol search order so class name with same name as type is properly handled REVERT: d255499c16 Fixed a problem where the use of a get accessor could incorrectly reuse temporary variables REVERT: 8a8f0f1e00 documentation REVERT: 567a01d8e2 Fixed bug in CScriptArray::RemoveRange REVERT: 7c53d1fd64 Fixed compiler error on MSVC2008 due to missing stdint.h REVERT: 9216d9b990 Registered funcdefs can now be used by shared script functions REVERT: 3f06f8244f Releasing 2.31.2 REVERT: f4792b6e28 Fixed problem with temporary variables being overwritten when invoking overloaded dual operators with left-to-right evaluation. REVERT: 18a798da6b Fixing last remaining CastToObjectType REVERT: f712d97c3a Fixed crash on GCC 6 due to CastToObjectType accepting this == null REVERT: 4a735d5f6e Fixed bug in script builder for meta data on functions with default arguments REVERT: 07ca5fc71c Corrected as_config.h so Linux for 64bit ARM doesn't try to compile as_callfunc_x64_gcc.cpp REVERT: 07268f51e3 Fixed compiler warnings on Linux with gnuc REVERT: bf360f5aea Documentation REVERT: e8ad42295b Changes to meson project files REVERT: fc6d89e29b opCast(?&out) on null handle now works without raising null pointer exceptions REVERT: 93df53f93f Fixed assert failure on implicit conversion from 8/16 bit uint constant to integer REVERT: cfad5f2fe2 Non-assignment dual operators, e.g. +, now evaluates left to right even when using overloaded operators REVERT: 166f988247 Reduced the number of calls to addref and release that the compiler includes in the bytecode in some cases REVERT: 4060eda8b9 Fixed problem with registering types using the asOBJ_IMPLICIT_HANDLE flag REVERT: b695c4ae56 Fixed bug in bytecode serialization when adjusting pointer sizes for calls using asBC_ALLOC REVERT: 6a0489669d Fixed assert failure when compiling comparison operator on boolean constant REVERT: d86baba90e Fixed compiler error on Linux with non-x86 64bit platforms, e.g. arm64, mips, and s390x architectures REVERT: ce8bc5ffc0 Non-pod value types are now allowed to be registered without default constructor, as long as at least one constructor is registered REVERT: b952c63d6c - Compiler emits warnings if 64bit integer constants cannot fit when implicitly converted to smaller types - Compiler didn't support implicitly converting constant uint64 values to uint32 values - Introduced a new keyword 'if_handle_then_const' that is used to tell template that a handle should be to const object - Compiler now emits an error if an integer constant is larger than 2^64-1 REVERT: 2fe55ac217 Fixed incorrect compiler warning about too large value when assigning negative value to const int8/int16 REVERT: e8d1be8ba8 Fixed assert failure when compiling boolean not operator on constant REVERT: ac47ea3f53 Fixed bug when compiling get property accessor returning a registered type that is then implicitly converted to another REVERT: cfe4ccf1c9 Fixed bug in compiler when passing a @& argument to a function REVERT: 336e95c22c Fixed assert failure in compiler when compiling invalid switch case REVERT: c7d3977db1 Fixed bug with saved byte code not being portable between 32bit and 64bit platforms when including ChkNullS instruction REVERT: 802ad4aadf Fixed big endian errors in the compiler related to implicit conversions of constants REVERT: 671c53885f Introduced a new keyword 'if_handle_then_const' that is used to tell template that a handle should be to const object REVERT: 3833ce1f8d Fixed crash when discarding modules containing shared funcdefs REVERT: 4aac321d14 Documentation REVERT: 992c5de0e8 Registered the opAssign method for weakref to allow value assignments for this type REVERT: cb1f7925ea CreateScriptObject crashed when called for template value types REVERT: 83055f97ba Fixed a big endian error in the test framework REVERT: 871307605c Fixed big endian errors in the compiler related to enum values REVERT: 7eace17781 Fixed a bug in asrun example where the context was returned to the pool before being unprepared REVERT: 88f8e7a959 - Fixed asGetTypeTraits on clang 3.8 - Fixed a minor bug in ExecuteString that could cause problem in rare cases REVERT: 8855bb2afc Fixed compiler warning about missing GNU-stack on gentoo Linux REVERT: ecfa22dba6 Releasing version 2.31.1. REVERT: a64afbdbff Fixed some gnuc compiler errors on Linux REVERT: f5d9c1b19f Fixed compiler error in datetime add-on on gnuc REVERT: 44900ddd97 Fixed bug when retrieving a bool from a dictionary value stored with an int. REVERT: 33cda50795 Fixed some big endian compatibility issues REVERT: 60d282c5d1 Function pointers wasn't properly handled in asIScriptGeneric GetArg and SetReturn methods REVERT: 32a796e10f Function pointers wasn't properly handled in context's SetArg and GetReturn methods REVERT: 17f3412a0c Added asEP_HEREDOC_TRIM_MODE to allow application to decide how/if heredoc strings should be trimmed REVERT: d979819717 Anonymous objects initialized with initialization lists are now parsed as expression terms, rather than expressions by themselves REVERT: 364a5782de opCast can now be used on types registered with asOBJ_NOHANDLE too without crashing REVERT: 36ee5711fc Fixed crash with 'auto var = null;' as global variable REVERT: 30617a4366 Function pointers in initialization lists would crash the application REVERT: a48749ae3d Returning a function pointer from a registered function wasn't working properly REVERT: 97f113da6f Incorrect constructor could be used when declaring variable of object type and the initialization expression was of the same type but type had no copy constructor REVERT: 0fb532d05f Fixed the script array when using AS_USE_STLNAMES REVERT: 6647cf776a Implemented insertAt for the array add-on that inserts all the elements from another array REVERT: 0ccaa66fe2 Enum to int32 conversion is now preferred over enum to int of other sizes in function overload resolution REVERT: ba54cb3cf2 Fixed crash in compiler when compiling 'null();' REVERT: 64f1710a02 Fixed assert failure in compiler with AS_DEBUG when compiling anonymous function from class method REVERT: b652b22831 Offset for bytecode ClrVPtr wasn't adjusted correctly when saving/loading bytecode when the referred to variable was a null pointer REVERT: 9fb010c6c2 Implemented removeRange for the array add-on REVERT: b1abf6c829 Implemented findFirstOf, findLastOf, findFirstNotOf, findLastNotOf, insert, and erase for the string add-on REVERT: cd1c9635fc Implemented parseUInt for the string add-on REVERT: 8f4ccd57f8 Fixed error when discarding a module if a context was still holding a reference to global var REVERT: 3208626ade Compiler wasn't giving an error on 'void &' REVERT: bb6d2cdbcd auto var = null; no longer causes a crash in the compiler REVERT: b14d84bcf1 Expressions like (expr ? null : null) is now compiled correctly REVERT: 430580a6cf Fixed null pointer access crash in compiler when compiling invalid script with value assign of function pointer REVERT: b36173c237 The generic calling convention wasn't properly handling funcdefs in arguments or return type REVERT: 89cd10929b Fixed null pointer access crash in asBC_Thiscall1 when calling opIndex on a null pointer REVERT: 025552c4de The auxiliary pointer wasn't stored with object methods registered with the asCALL_GENERIC calling convention REVERT: 45f8d6d50c Fixed compiler bug when passing funcdef by reference to a function REVERT: ded27ec5fb Fixed assert failure in compiler when attempting to implicitly convert primitive to function pointer REVERT: be5c1c4028 Releasing 2.31.0 REVERT: 8b09cb6883 Documentation REVERT: 8fcda61d36 Compiler properly resolves namespace when calling base classes method and the base class is declared in a different namespace REVERT: 32e64f7604 CScriptBuilder incorrectly replaced /./ in include paths with nothing REVERT: f32f202ec0 CScriptAny released asITypeInfo that it didn't own when a null handle was stored in it REVERT: 098eee16c5 Fixed bug in compiler when passing a handle from function argument to copy constructor REVERT: 401b3ce3a1 Documentation REVERT: 217cfaa10e Documentation REVERT: d3eebc9d22 Implemented getInput in the asrun sample to allow it to get user input from standard input REVERT: 96bf7a4459 Implemented CDateTime as a basic way of getting the time in scripts REVERT: 550003b0d1 Documentation REVERT: df4c869dcb Documentation REVERT: aab1949ccb Documentation REVERT: 4d0e08e718 Documentation REVERT: 5916c4f56c Fixed memory leak when passing funcdef to application registered function REVERT: 5fc10cdb88 Fixed the problems on Linux 32bit when compiling with optimizations REVERT: 2bfef733a6 Fixed crash on Linux 32bit when application threw C++ exception and library had been compiled with optimizations REVERT: 1ffa571cac - documentation - Implemented CScriptDictionary::find - Changed CScriptDictionary::Delete to return bool REVERT: 82216d4a5e Documentation REVERT: 0b41281657 - Fixed some compiler warnings in the test code - Added a clang configuration for MSVC (though not fully working yet) REVERT: 424d40e737 Clang is now recognized in angelscript.h as supporting C++11 features REVERT: c04e6f42ee Modules now keep a reference to funcdefs that are indirectly created by taking the address of function pointers. This way these are saved as declared funcdefs together with the bytecode, eliminating the need to store the function signature together with each use of the type info. REVERT: ae4e15c440 Finished the refactoring of the internal representation of types REVERT: 48ff982d27 Refactoring REVERT: 3d37442ee2 Fixed a crash when calling CompileGlobalVar and the compilation failed. REVERT: 4d7a725d64 - Implemented GetParentType in asITypeInfo - Deprecated GetParentType in asIScriptFunction REVERT: 3d3ae06c8c - Fixed compiler warnings about hidden variables - GetChildFuncdef now returns an asITypeInfo instead of asIScriptFunction - Added GetFuncdefSignature to asITypeInfo - Deprecated GetFuncdefFromTypeId REVERT: 519c19b96a - asOBJ_SCRIPT_FUNCTION has been removed - RefCastObject can now be used for function pointers too - ScriptHandle and Dictionary no longer need special code for function pointers REVERT: 6f145057ff Fixes for big endian CPUs REVERT: 0147c13af9 Fixed compiler error in as_memory.cpp on OpenBSD REVERT: 5e2845abb2 Fixed compilation error without AS_DEBUG defined REVERT: 2ee4179af7 - Array is now probably disallowing funcdefs by value as subtypes - The compiler is properly handling passing reference to a handle to a funcdef as function argument REVERT: 9302c4cdf5 Fixed a bug in compiler with calling function with const reference and the function expected non-const reference REVERT: ddbee98e92 Functions with generic calling conventions now catch application exceptions REVERT: ed3047385e Funcdefs are now handled as asCFuncdefType instead of asCScriptFunction internally thus making it more uniform with other types REVERT: 2cd4774c40 Refactoring REVERT: c51331e505 funcdefs are now stored internally as asCFuncdefType derived from asCTypeInfo REVERT: f226c6e558 Changed GetTypedefByIndex to return an asITypeInfo and removed all the output parameters REVERT: 9a7eb83199 Changed GetEnumByIndex to return an asITypeInfo and removed all the output parameters REVERT: 3652d0b7e6 - Implemented asITypeInfo::GetEnumValueCount and GetEnumValueByIndex - Deprecated GetObjectTypeByName/Decl, GetEnumValueCount/ByIndex, GetObjectTypeById, SetObjectTypeUserDataCleanupCallback in engine - Deprecated GetObjectTypeByName/Decl, GetEnumValueCount/ByIndex in module - Deprecated asIObjectType REVERT: 87ad59d04f Implemented GetTypeInfoByDecl, GetTypeInfoByName, GetTypeInfoById, and SetTypeInfoUserDataCleanupCallback REVERT: 3e81962d87 Partially specializing the scope as the enum type when referring to enums in namespaces is now possible REVERT: d550b0b686 Access mask in the engine now defaults to all bits set to make sure built-in functions are available to all modules REVERT: 43d5e4d768 Linux with PPC64 Little Endian is now working with AS_MAX_PORTABILITY REVERT: 8f98c60f1c Renamed asIObjectType to asITypeInfo REVERT: cc0f302e03 Continuing the refactoring REVERT: e86c3f9d9a Refactoring the code in preparation for the new asITypeInfo interface REVERT: d49694f095 Added configuration in as_config.h to identify GNUC+Linux+PPC64 REVERT: 6686a7317f Refactoring REVERT: 0beecd15e9 Fixed problem with named args and registered behaviours REVERT: 344c6585a5 Implemented asEP_ALLOW_UNICODE_IDENTIFIERS REVERT: 96ae96a92b Tweaking the gnuc makefile REVERT: fe410fb75b Corrected the name of the shared object filename in the gnuc makefile REVERT: 815fbb762e Fixed cmake project files REVERT: dae5b89167 Ternary condition can now return function pointers REVERT: 5befb8f6ab Fixed problem in CScriptAny with constructing any object from primitive REVERT: 54a8f4a8ee Added GetParentType to asIScriptFunction to allow querying the parent type for child funcdefs REVERT: 3abef81c47 Improving the validations for error scenarios with child funcdefs REVERT: ccd7a6a491 Child funcdefs in templates works properly in the template instances REVERT: edc36aba1a Working on the support for child funcdefs in template types REVERT: 24e739a313 Fixed bug with namespace and class member initialization REVERT: 7d7cdd846c It is possible to register child funcdefs in template types too REVERT: 0b9b7e2b51 WriteConfigToStream and ConfigEngineFromStream is properly handling child funcdefs REVERT: 6b024152f2 It is now possible to register child funcdefs with RegisterFuncdef too REVERT: 0a846b7014 - Added GetChildFuncdefCount and GetChildFuncdef to asIObjectType - Renamed GetFuncDefFromTypeId to GetFuncdefFromTypeId for consistency REVERT: cbbb047d31 Fixed compiler errors in add-ons when using AS_USE_NAMESPACE REVERT: 3e2d8b798f funcdefs declared as child of class can now use other child funcdefs in the same class in the signature REVERT: ff1cfa873f Child funcdefs are now visible in derived classes too REVERT: d86c14881e Fixed bug with template value types and loading bytecode REVERT: 038df03ce4 child funcdefs in shared classes is now working properly REVERT: ad9710bede Saving and loading bytecode with child funcdefs is now working REVERT: 7194d5a8a1 Name conflicts between child funcdefs and other class members are now properly detected REVERT: b6949e8cc3 The basics for child funcdefs is now working REVERT: 08e72ea853 Working on member funcdefs REVERT: ff249212ba Compiler will no longer match funcdefs for datatype if the namespace is not the correct one REVERT: 67464a35ac Parser now supports declaring funcdef as child of class REVERT: 8499398404 Improved parser error message when finding unexpected token to inform if the token is reserved or not REVERT: ff4690a39c Compiler no longer crashes when assigning anonymous function to variable declared with auto type REVERT: 80ef835773 Added support for registering and retrieving the auxiliary object pointer with asCALL_GENERIC REVERT: 15bc0c5a08 Fixed compiler error on non-MSVC compilers with AS_DEBUG defined. REVERT: f68d27beef - Upgraded project files to MSVC 2015 - Fixed compiler errors on MSVC 2015 REVERT: 8ccf4d8720 Releasing 2.30.2 REVERT: a278d917dc Fixed a bug with SaveByteCode on 64bit platforms when the script called constructor with primitive arg before object arg REVERT: 517162d870 Documentation REVERT: e187097c95 Documentation REVERT: 96a9b9ce74 Documentation REVERT: 9a8de9bf16 Documentation REVERT: 491e19f64c Initialization lists can be used to initialize variables declared as handles too REVERT: 63eb215025 ANGELSCRIPT_VERSION is now the default argument to asCreateScriptEngine REVERT: 738045d945 - CScriptDictionary now uses a typedef for the key type to make it easier for applications that uses custom string types - Changed to use std::unordered_map in CScriptDictionary when C++11 is used - The CScriptDictionary now caches its object type to avoid looking it up in the engine for each instance REVERT: 2b6813bd23 Fixed compiler bug with nested namespaces, when the outer namespace has not been explicitly registered REVERT: 3fa061c89a Improved compiler to create less temporary objects when using the opConv(?&out) type conversion operator REVERT: 35f4b84673 - Optimized some byte code sequences generated by the compiler - On C++11 enabled compilers the string pool is now using the unordered_map container for faster look-up REVERT: 43843f584a - cleaned up old code comments - Improved the compiler to generate less temporary copies of objects - The options argument in formatInt, UInt, and Float now has a default argument of an empty string REVERT: d928c8e71a Minor improvements REVERT: 8355f7ba9a - Functions can be called with anonymous functions as arguments - asIScriptModule::CompileFunction can also declare anonymous functions - anonymous functions can also be used within shared functions - Fixed compiler error in scriptbuilder.h - anonymous functions can be used in asIScriptModule::CompileGlobalVar REVERT: 968d4a7098 Working on the anonymous functions REVERT: 5b4a451c77 Fixed crash with asCALL_THISCALL_ASGLOBAL and objects passed by value in argument REVERT: bba7e771f9 Parser now understands the syntax for anonymous functions REVERT: 9158e0da21 Added the reserved keyword 'function' that will be used to declare lambdas REVERT: b1edac721c Fixed compiler error REVERT: 0d9ff0bdc2 Throwing exception from application code would cause a crash if the library had been built without optimizations on 64bit GNUC REVERT: 15676bbf39 Improved performance for saving bytecode that uses lots of global properties REVERT: 9a6184a2e6 Improved thread safety to support multiple threads querying typeIds simultaneously REVERT: e9c3bcf1f1 Optimized GetTypeIdFromDataType REVERT: 0c93911923 Changed how strings are saved to byte stream to reduce the size of the stream REVERT: 94c9697ea7 - Built-in function names and object types are now prefixed with $ to make it quicker to identify them while loading bytecode - Optimized logic for finding registered function/method in LoadByteCode - ConfigEngineFromStream appropriately treats names of behaviour functions before registering them since they are now prefixed with $ in WriteConfigToStream REVERT: 5d94458567 Preparing tests for optimizing LoadByteCode REVERT: 9c4a4a3965 Releasing 2.30.1 REVERT: 602ef9f655 Defined AS_NO_EXCEPTIONS for Android ARM, as catching C++ exceptions is currently not working REVERT: 64dd02148e Documentation REVERT: 27a1944019 Documentation REVERT: cfdcbdc264 Fixed compile error in scriptbuilder.cpp REVERT: 14eb7bc90f Improved performance for loading saved byte code REVERT: f12c372e19 CScriptBuilder now does case insensitive compares for duplicate include files on Windows REVERT: 24d17cc165 Fixed compiler bug that allowed class method handle to be converted to primitive REVERT: b21ed4b607 Fixed compiler bug when using construct call for a reftype on an object with opConv(?&out) REVERT: f0dfbfb192 for-loops now support multiple increment expressions separated by , REVERT: 15b8bb1e4d - Implemented GetAddressOfValue in the dictionary value and iterator to simplify inspecting the content with the debugger - Added a Set/GetEngine to the CDebugger to hold an engine pointer that can be used by the callbacks - The debugger's ToString method and Callbacks now take a expand members recursively - Implemented DictionaryToString debugger callback in asrun sample REVERT: a13051ef2a Fixed some compiler errors on Linux with ARM REVERT: 4455d829d0 Fixed a possible null pointer access while releasing a script function REVERT: ebfc38c7f2 Fixed a compiler problem in asrun when C++11 support is not available REVERT: d212634bc5 Fixed compiler warnings in asGetTypeTraits on gnuc 5.1 REVERT: 2176ce3332 Fixed a null pointer access failure that could happen in asGetActiveContext REVERT: c6a7a000bc - Improved Android project files - Added configuration to build AngelScript for Android with MIPS REVERT: 9938f3d678 - Added meson project file - Changed a couple of tests to not fail if regression test suite is executed from the wrong path REVERT: 64ea1694ea Added an android project for test_feature REVERT: 2d3f8c0c03 XBox 360 now supports 64bit integer arguments in native functions REVERT: 83ab984007 Fixed compiler error with AS_MAX_PORTABILITY REVERT: 1e06c7f0eb Added #if !defined(AS_MAX_PORTABILITY) condition in the GNUC assembler files to avoid compilation errors when AS_MAX_PORTABILITY is defined REVERT: f9a5aafa9f Added supported for native calling conventions on Linux with MIPS REVERT: d6312f6d73 Native calling conventions on Linux with MIPS is now fully working REVERT: 754023866e Working on native calling conventions for Linux with MIPS REVERT: e3ad5cfebf Fixed a bug with native calling conventions on Win32 when using Clang with MinGW 4.7+ REVERT: 63c9c072a5 Fixed crash on Win64 when calling native function that takes object by value that requires clean-up after call and the function also return an object by value REVERT: 9eecf27d2c Working on support for native calling convention on Linux with MIPS REVERT: 7aac1390da Fixed assert failure in compiler when creating delegate from temporary object REVERT: 81eb0833fa Working on support for native calling conventions on Linux with MIPS REVERT: c36b608be8 Working on support for native calling conventions on Linux with MIPS REVERT: c899ba1332 Working on support for native calling conventions on Linux with MIPS REVERT: a3fa86cc67 Preparing for Linux MIPS REVERT: 92fe6b8d40 Saving bytecode that used templates with multiple subtypes is now working properly REVERT: b51b4072bb Fixed bug with opIndex when global variable had same name as datatype in a different namespace REVERT: fb79903ce6 Script array is now constructed even if the current script context has a script exception set REVERT: a43411c013 Included asserts in CScriptAny to detect improper usage from application REVERT: efb0a831cd Fixed problem with ternary conditions returning references to global variables REVERT: 38f9bf2ea1 Parser properly handles template type and non-template type of same name in different namespaces REVERT: d4c789236c Added formatUInt for strings REVERT: 7b652687dd Added assert in CScriptArray to verify that the informed object type is indeed an array type REVERT: 9ad99f428b Implemented asBC_Thiscall1 for faster calls to class methods that take an int argument and return a reference REVERT: 68c2f844e8 cmake now reads the version from the angelscript.h file REVERT: 17583ec9dd Implemented an experimental byte code instruction for quicker access to array elements. It reduces the overhead of the opIndex call to about 1/3rd. REVERT: d0db10a7f2 - Added GetBuffer to the CScriptArray object - Added GetRef to the CScriptHandle REVERT: 1ea8dc3e64 Fixed bug with compiler accepting null handle in initialization lists that didn't support it REVERT: 2ba7ab93b5 It is now possible to register member properties as references if the member should be dereferenced before access REVERT: 8ad8dae1dc Serializer attempted to backup non-pod types that had no user type registered with bitwise copy potentially causing errors REVERT: a4ffb5f59b Fixed bugs in serializer add-on REVERT: a34206d682 Compiler no longer gives error when access global variable in global namespace from class in namespace REVERT: bc7f3697b8 Documentation REVERT: 7e403bfc93 Fixed bug in compiler when using compound assignment on virtual property on temporary variable REVERT: c79bf717b7 Releasing version 2.30.0 REVERT: b929ab4c65 Documentation REVERT: acfd1b4916 Documentation REVERT: cf80801f81 Fixed incorrect compiler warning about converting to handle after get accessor REVERT: bef2781977 Fixed crash on iOS/arm64 with thiscall callback functions REVERT: cd4adcab09 Fixed bug in asBC_u64TOd and asBC_u64TOf on non-MSVC compilers REVERT: 817988ec6e Documentation REVERT: ed11f51869 Documentation REVERT: 23e6b93129 Fixed a couple of compiler warnings on XCode REVERT: 0fd3fc8f83 - Template instances have the clean-up instructions in the functions re-prepared - Prepared CContextMgr for use with AS_MAX_PORTABILITY - Fixed bug in dictionary's opIndex when generic calling convention was used - Fixed bug in CScriptHandle when AS_MAX_PORTABILITY was used - Fixed bug in CScriptWeakRef when AS_MAX_PORTABILITY was used REVERT: 0e394473fc Documentation REVERT: aa59c4e078 Added engine property asEP_PRIVATE_PROP_AS_PROTECTED REVERT: 28a96b5624 Documentation REVERT: 441b1ebcba Mapping the document changes that are needed REVERT: fd13ec11d2 More cmake enhancements REVERT: e5cfebf1af Documentation REVERT: 352a5d9573 Recursively search parent namespaces in methods that look for functions, global variables, and object types REVERT: 638ebd212f Improved cmake project to support building the library as shared object REVERT: 769ca172ee Fixed problem with compiler not detecting incorrect type when passing class method as argument to constructor REVERT: e494b21916 bug fix: Methods declared in mixins in namespaces weren't compiled with the correct namespace REVERT: ff574d8f75 Directly calling a funcdef retrieved from member property accessor would get wrong arguments REVERT: 14ead22a69 Compiler didn't properly check the access masks for registered class methods REVERT: 44343a783b Fixed compilation error on platforms with SPLIT_OBJS_BY_MEMBER_TYPES config (e.g. gnuc) REVERT: b8f09654ab Improved WriteConfigToStream so that template types are fully registered before other types REVERT: ce6d59a27c Included check to avoid modifying template types registration after a template instance has already been generated REVERT: 4a44d597c9 Fixed problem with nested namespace in ConfigEngineFromStream REVERT: 582e1cba77 Fixed bug in compiler where default argument could use temp var used in previous arguments REVERT: dd927755c7 Fixed ScriptArrayIsEmpty_Generic that didn't set the return value REVERT: fa90832a29 Fixed an issue with the global namespace in ConfigEngineFromStream REVERT: efa5c626ef - When formatting type declarations for messages the namespace will always be included if different than the current namespace - Fixed WriteConfigToStream to keep the valid object type flags REVERT: ed4f2d57f0 Fixed a couple of invalid memory accesses detected with valgrind REVERT: b1412ea68e Fixed compiler warnings with gnuc REVERT: 490d8cc0cd Fixed access to previously deleted memory when discarding modules REVERT: 4523ce7abb Fixed for multiple overloads for opCast and opImplCast REVERT: ec6c22c5f8 Deprecated asBEHAVE_REF_CAST and asBEHAVE_IMPLICIT_REF_CAST REVERT: edf43b9a5a Script classes can now implement opCast and opImplCast to provide custom ref cast behaviours REVERT: 19452c4370 Added support for protected class members REVERT: 70c0aa4b66 Private class properties are not accessible from derived classes REVERT: 6620c4fed8 - script engine now only keeps reference to shared script types - removed compiler warning on empty script sections REVERT: 70ff76edb7 Changed delete to asDELETE REVERT: 18945fd0ca Fixed bug in compiler for compound assignments with virtual properties REVERT: bd8173c7ac - Completely re-factored the way the memory management for the internal script code is done - Discarding modules is much faster, and doesn't burden the garbage collector - No more memory build-up when the script has circular references between classes and templates REVERT: 3ba650dc66 Fixed a problem with the conditional operator returning a reference to objects in parameters REVERT: 5b34473f1a Better error messages to explain why compound assignments are not always supported for property accessors REVERT: 2ed370fb8a Implemented a test to verify performance of rebuilding a module repeatedly REVERT: a878e42615 Compound assignment operators can now be used with virtual properties REVERT: d3281b396d Fixed GetModule() thread safety for real REVERT: 51e915475a Fixed thread safety issue in GetModule REVERT: 61a7fd79ae Planning a redesign for module clean-up for improved performance during shutdown and recompilation of modules. REVERT: ea3345fb0b Added support for compound assignments for global virtual properties REVERT: c00ed1c0ac Documentation REVERT: 0ced9c01ce imported functions can now be placed in namespaces too REVERT: 894eeabca4 Tests and documentation REVERT: ab78103964 It is possible to register an enum with the same in a namespace after it has been registered in the global namespace REVERT: 4812cd99d0 CScriptBuilder expands relative paths to absolute paths before verifying if the include file is duplicate REVERT: ff192e1d93 Debugger now accepts namespace for printing variables REVERT: bf2537042f opImplConv can now be used to allow implicit conversion to bool for registered value types REVERT: d662b11976 The ternary condition operator can now be used as lvalue if both options are lvalues of the same type REVERT: fec451a013 Changed SetLineCallback so that it is safe to call it from a second thread while the context is running REVERT: 4f264b13a4 Reduced overhead in CallSystemFunction REVERT: 5a857c3175 Completed documenting the syntax in BNF REVERT: d3af3139f1 Tweaks and code clean-up REVERT: c29db17fef Minor tweaks and optimizations REVERT: 8716f462fe Minor tweaks and optimizations REVERT: e25147b5e9 Updated the manual with the maximum and mininum value for double REVERT: 7f4a23ee55 - Implemented support for user data in script object instances - The asCArray now use asUINT to hold the size instead of size_t REVERT: b84f429291 dictionaryValue has better support for boolean values REVERT: 4f37b2b656 Documenting the syntax in BNF REVERT: 22eab20828 Added ShutDownAndRelease to explicitly tell when the engine should be shut down, compared to simply releasing the reference REVERT: 07b95ab0fe Documenting the syntax in BNF REVERT: 4ba7604879 Documenting the syntax in BNF REVERT: 40e366f410 Simplified the CFileSystem a bit (no longer does it do pattern matching when enumerating files/directories) REVERT: 5c0c2c0406 Implementing Linux support for the file system add-on REVERT: 151e39b4f6 Fix to the gnuc makefile REVERT: e3af360d8f Minor portability fixes for Linux REVERT: 02818a9358 Updated gnuc makefile to automatically retrieve version number from angelscript.h for the shared library file name REVERT: 618faf5b9a Fixed some compiler warnings on gnuc in the add-ons REVERT: a5db6461bf Implemented SetArgVarType to the context for calling functions with variable argument types REVERT: eee744cfeb Continuing to document the language syntax in extended BNF REVERT: 2b8750cfd8 Starting to document the language syntax in extended BNF REVERT: edc9ac4928 - Fixed bug in CScriptFile - Improved compiler error messages when constructor/destructor is given the wrong name REVERT: 88ef135865 Changed CScriptFile::ReadLine and ReadString to return the string by value instead of as an output parameter REVERT: 81d660cf16 Class method can refer to base class' method with fully specified namespace REVERT: 73d7a15e84 Application can now register types with asOBJ_IMPLICIT_HANDLE if this option is turned on REVERT: e6e9c032fb - The dictionary now supports function pointers in the ref cast behaviour again - RefCastObject returns an error if used for a function pointer REVERT: ab7c741385 Implemented asEP_DISALLOW_EMPTY_LIST_ELEMENTS to allow application to disable empty elements in initialization lists REVERT: 9272a923be When compiling a default argument expression the namespace of the called function is used as default REVERT: cf51a38e67 - CScriptFileSystem properly supports Unicode file names - asrun can write Unicode text to console and it is automatically converted to current locale REVERT: c51b955654 - Changed ContextMgr::AddContext to allow application to tell manager that it want to keep the context after execution - Added ContextMgr::DoneWithContext to return the context after the application has retrieve what it wants from the - Fixed the asrun sample so now returns the status from the script again REVERT: 736f875de4 Created a filesystem script add-on REVERT: 638b55695f - The compiler was producing wrong bytecode when calling asBEHAVE_IMPLICIT_REF_CAST on value type - Fixed crash when script class contained value template type as member - The weakref is now a value template type - The syntax for using weakref in script is much more like a normal handles REVERT: d144b5eb63 - GetFunctionByDecl wasn't able to find the global function if the name was prefixed with :: - Returned declarations with namespaces no longer prefix symbols with :: when declared in the global namespace REVERT: d2066231f6 The constructor stubs for value template types didn't pop the object pointer from the stack REVERT: f1964f7cfd - Renamed CastObject to RefCastObject - Deprecated asIScriptEngine::IsHandleCompatibleWithObject - CScriptHandle, CScriptAny, and CScriptDictionary use RefCastObject to properly cast the contained handle REVERT: eb67007487 GetModule and DiscardModule are now thread-safe REVERT: 97a0581bf6 - Fixed an assert failure in the compiler when compiling an assignment with non-temporary deferred arguments - The dictionaryValue was missing a copy opAssign method so it wasn't possible to directly assign one dictionaryValue to another REVERT: 94243f0968 - Fixed bug with asOBJ_APP_ARRAY in arm and ppc64 calling conventions - Fixed bug in Linux arm hardfloat ABI - Added support for native calling conventions on PS Vita REVERT: f5b97db9cd - Template specialization failed to remove generated template instances that has been created as a consequence - Engine detects if application attempts to register method or property for generated template instances REVERT: 5876d72bca - Implemented asIScriptEngine::CastObject - The CScriptHandle uses the new CastObject to properly cast to all supported types of the contained handle REVERT: cee64c7c56 Added asIScriptObject::GetWeakRefFlag REVERT: afb16b497f - asIScriptEngine::AssignScriptObject now returns an int with the success or error code - The tokenLength arg for ParseToken is changed to asUINT REVERT: 1a6c8f60ae Template specialization failed to remove generated template instances that has been created as a consequence REVERT: 209a11fa6a Fixed an incorrect error code when registering a template specialization and the template type instance already existed REVERT: 1f6820261a Improved the algorithm for verifying if script classes require garbage collection REVERT: 2d56ebec05 Delayed the callback to template instances further so the template can know if the script class will be garbage collected or not. REVERT: f4476236c7 Funcdefs can now have template types with script classes as subtypes REVERT: 5b2a2dc236 The script array and grid add-ons avoid flagging themselves as garbage collected for handle subtypes that are known not to be garbage collected REVERT: 892ed82632 Compiler will now give error if there is an overflow when evaluating power-of in constant expression REVERT: 5e3ef4c3c0 Deprecated asBEHAVE_VALUE_CAST and asBEHAVE_IMPLICIT_VALUE_CAST REVERT: bea2bb2246 Fixed bug when comparing two handles and one is a handle to a read-only object REVERT: c0b8591b7f Preparing to deprecate asBEHAVE_IMPLICIT_VALUE_CAST and asBEHAVE_VALUE_CAST REVERT: 7c4bb6cae8 Improving the test case for aligned scoped reference REVERT: edac97e629 Fixed bug with use of scoped reference types declared in global variables REVERT: 29be95f106 Updating the version string in angelscript.h REVERT: 02b6519670 Releasing version 2.29.2 REVERT: 4fcbc16c05 Documentation REVERT: 846c77ae7d Documentation REVERT: ede21ae639 Fixed bug in compiler with use of implicit value conversion and temporary variables REVERT: 3a2e261263 Updated asBC_CALLBND so that imported functions can now be bound to application registered functions too REVERT: 1e57d8255a asGetTypeTraits compiles on gnuc 4.8+ again REVERT: a031a31527 Adding missing test_propintegerdivision.cpp REVERT: 0ea883fbd6 Compiler automatically resolves ambiguous enum values on comparisons REVERT: cadcb29d39 Fixed bug in CScriptFile when reading ints for least significant byte first REVERT: 08badc7c5a CScriptBuilder will report the correct path to the include files that fails to load REVERT: ebb643ef7a CScriptBuilder::AddSectionFromMemory now has an optional lineOffset argument REVERT: 36e755d349 The template types can now refer to each other using different template subtypes REVERT: 079d220842 Template types can now use other template types as method arguments where the sub-types are shared REVERT: 34701b24c1 Compiler warns when overloading inherited class method and default args in the methods cause conflicts REVERT: 673c6bc408 Compiler warns when variable in inner scope hides variable of same name in outer scope REVERT: ac91c57dfe Store the owning module pointer in interfaces, enums, and typedefs REVERT: 3f34f038e6 Improved performance of shutting down the engine REVERT: 67513235c8 Added asEP_DISABLE_INTEGER_DIVISION that makes all divisions with integer values result in doubles REVERT: dccea150dc Template instances now receive the member properties that were registered for the template REVERT: 33ad23c246 Improved compiler compatibility of asGetTypeTraits to support Xcode/Clang REVERT: c6760055eb Application no longer crashes if an asIObjectType is released after the engine has been released REVERT: 1e9f0ecbee Script classes can now inherit opConv and opImplConv from base class and add its own for other types REVERT: 916782a782 Passing a non-lvalue expression to a &out argument will now yield compiler error instead of warning REVERT: 923c10443c dictionary::get now supports retrieving stored handle by value if type is compatible REVERT: 9dd9633b91 Script classes can now implement opConv and opImplConv to support type conversions REVERT: 96b90c049c Concatenation with integers and string now properly supports 64bit types REVERT: 5fe60dd116 Identity comparison on handle received as parameter by reference wasn't working REVERT: 1e8eaca610 Fixed crash in compiler when compiling initialization lists with 'null' as one of the elements REVERT: 455010fec2 Taking the address of an imported function now works as it should REVERT: c13c516b32 Compiler was incorrectly accepting syntax as object@(expr) REVERT: e96445fc3a Fixed problem with storing/retrieving enum values from the dictionary REVERT: 0fd3b473e4 Fixed incorrect warning on literal -9223372036854775808 REVERT: a363068020 Merged patch with partial implementation to support 16byte aligned native types, e.g. __m128. The implementation will be turned off by default until it is completed. Turn it on by defining WIP_16BYTE_ALIGN. REVERT: 1538e828b3 Fixed bug when global variable expression had casts between script classes REVERT: fa33516901 - Empty initialization lists are now properly working where a repeat pattern is expected - The array and grid add-ons no longer set a script exception if the initialization list is empty REVERT: aef636c563 Fixed bug related to opCall overload REVERT: a064a09e65 Releasing 2.29.1 REVERT: 6543366dc6 Documentation REVERT: 2660b4d911 Fixed errors with saved bytecode when using template types declared in namespace REVERT: 66e913e777 Fixed bug in closeTo() math add-on function REVERT: 34a6e5a8e2 Fixed parser bug when local variable had the same name as a type in different namespace REVERT: 246ebd7008 Fixed compiler warnings REVERT: 215790ad79 asOBJ_TEMPLATE can now be used with value types too REVERT: 6f5b93aa20 Improved error messages REVERT: 2aab9ae56d Added support for declaring classes as abstract to prevent instantiation REVERT: 61d3b72075 Added asEP_ALTER_SYNTAX_NAMED_ARGS to optionally support the previous syntax for named arguments REVERT: b29d088eaa Changed syntax of named arguments to func(arg: expr) REVERT: 96eaffc094 - The module's ResetGlobalVars uses the context callbacks to support debugging initialization of global variables without informing a pre-created context - The context callbacks are disabled before destroying the engine to avoid creation of new contexts while cleaning up objects - The asrun sample is now using the ContextMgr add-on to support co-routines - The ContextMgr uses the RequestContext instead of CreateContext to take advantage of the context callbacks REVERT: 3fe8a21560 Replaced the helper function PrintException with GetExceptionInfo that returns the information in a string REVERT: 0f3ecfa65b Promoted asGetTypeTraits<T>() from the helper add-on to an official interface function REVERT: cd88cd1c0f Improved compiler error messages REVERT: b9e837aa11 Improved compiler error messages REVERT: b3c65534a2 Fixed buffer overflow problem when Prepare() with virtual script function near the end of the stack memory REVERT: e187dfb287 Fixed null pointer access bug in grid add-on REVERT: a95034ddab Fixed problem with enumerating entities after removing a config group REVERT: 169cee8353 Fixed compiler assert failure with unsafe references and deferred arguments REVERT: 236810f63a Array elements are initialized to zero when resizing the array too REVERT: 4882c42f44 Array elements are initialized to zero by default REVERT: 96391a0873 Minor clean-up in the CDebugger REVERT: f146c90538 Releasing 2.29.0 REVERT: eff8892933 Documentation REVERT: 3ee5340f8c Changed to use a single SetContextCallbacks method instead of two separate methods REVERT: aaf88c43e5 Documentation REVERT: fad247ef66 Documentation REVERT: 7e77a16479 Documentation REVERT: 5f9affeb31 - Updating the coroutine samples with the changes to the contextmgr add-on - Documentation REVERT: 52a06edfe0 Compiler now gives an error when script declares handle to handle REVERT: 1db9a4d87a Documentation REVERT: 5f09f636f9 Resolved conflict between named arguments and initialization of anonymous objects as argument REVERT: f3e92d10ba Code clean-up REVERT: 42e6912de8 Mixin classes in parent namespace can now be properly included in a class REVERT: 0ef2438822 asCALL_THISCALL_OBJFIRST and asCALL_THISCALL_OBJLAST works on Linux ARM with softfp too REVERT: 063442dd1b Added support for registering functor objects as class methods with asCALL_THISCALL_OBJLAST and asCALL_THISCALL_OBJFIRST REVERT: 54b30fdad4 Fixed compilation error in asrun REVERT: 5cb7f2b53e Engine no longer silently accept registering template methods where the template subtype is passed by value REVERT: 54ff0c8bf0 Fixed bug in compiler that allowed expression with name of function without doing anything with it REVERT: 6d33c13393 Stack unwinding now works on Linux 64bit with native calling conventions REVERT: 63e331129c Improved runtime performance by avoiding increasing/decreasing refcount of script object in class methods REVERT: 875fa0c7c3 - asbuild now uses the ConfigEngineFromStream helper function - code clean-up REVERT: 1212396197 GarbageCollect(asGC_FULL_CYCLE | asGC_DESTROY_GARBAGE) will now properly destroy the garbage in the new generation too REVERT: b6c004b6d4 WriteConfigToFile wasn't saving the return type for the string factory correctly REVERT: b4855d58fa - Fixed compiler warning on CLang - Updated xcode project to support both 32bit and 64bit targets REVERT: 675933d310 Fixed problem with the compilation of asBEHAVE_VALUE_CAST with ?&out and primitive REVERT: cc362e52ad Added the argument numIterations to GarbageCollect to support multiple iterations without having to call the method multiple times REVERT: d08bac1b14 Fixed AS_NO_COMPILER REVERT: fe9fec344e Improve the touch scroll in the documentation REVERT: e55b08c19d Working on the context manager add-on REVERT: 903b962a83 - GetSubType now works for registered template specializations too - Loading bytecode with funcdefs declared from script wasn't working identical to building from source REVERT: 4abb2f9367 Fixed the scrolling in the documentation on Android devices, without hiding the nav-tree REVERT: d2f7931722 - Added RequestContext, ReturnContext, SetRequestContextCallback, SetReturnContextCallback to engine - Removed the custom header for the html documentation since it was broken REVERT: 7cf4265ba3 GetSubTypeId now works for registered template specializations too REVERT: b8a48b9165 Fixed bug in GetDeclaration when returning the list pattern REVERT: c2be2a8756 Dictionary uses asAllocMem and asFreeMem, and has factory functions to create instances REVERT: 59618bfe4a Reduced the size of the top logo a bit REVERT: bb6dccb2a2 - Updated doxygen files to add support for Android touch devices - Added a small logo on top of each page REVERT: fe44710459 Dictionary now has the opIndex that can be used to directly assign and retrieve values without using the set/get methods REVERT: b58b774692 Implemented C++ operator[] for the CScriptDictionary add-on REVERT: c0cff2bcbd Fixed the missing check for declaration of duplicate global variables REVERT: 485263ce01 The value cast behaviour with var type works for conversions to primitives too REVERT: 0346865a34 asBEHAVE_VALUE_CAST now supports the generic form 'void f(?&out)' REVERT: 6f7fb2b7a7 Defined the MULTI_BASE_OFFSET macro for the Sun CC compiler REVERT: 9f0d401f34 CreateScriptObjectCopy now uses the copy constructor for value types if available REVERT: 020e847d3c Compiler choses opHndlAssign or opAssign on initialization based on how the object was declared REVERT: 4d8e582e2e Improving the opHndlAssign usage REVERT: 17d70d9f75 Types registered with asOBJ_ASHANDLE can also register the opAssign method to support value assignments REVERT: cebd1b0311 opHndlAssign should be used to overload the handle assignment operator in registered ASHANDLE types REVERT: 39ade9bcbb Added the global functions asAllocMem and asFreeMem REVERT: 824a0a5e9b Added support for multiple user data in module, context, and function REVERT: 96619fe1ea Improved error message when trying to pass class method as argument REVERT: 8ce6959f45 Documentation REVERT: bc9cdbd674 Compiling the library with Sun CC for SPARC is now possible, though without native calling conventions REVERT: c2e521d339 Documentation REVERT: 14faebfb46 Preparing the test_feature for iOS and Android REVERT: 54eab28c39 Minor issues detected by PVS REVERT: b486b63287 Improvements for AS_MAX_PORTABILITY REVERT: ea74037913 Project updates REVERT: 0cc92e7ba8 Fixed compilation error in scriptdictionary on xcode 5.1 REVERT: 080727c8f1 Fixed some compiler warnings REVERT: bd90821cd7 The template callback can now write error messages to facilitate the understanding of why a template cannot be instantiated REVERT: 89b66c746e Removed old deprecated methods REVERT: ad3dd514ca - CreateScriptObject will return null if the object constructor throws C++ exception - Array and grid properly handle exceptions while constructing elements REVERT: cca0a8595c Improved C++ exception handling to avoid deleting object that was never returned REVERT: 90ba91cb03 Fixed assert failure when compiling auto declaration without initialization expression REVERT: 6faa1a453e Fixed bug with explicit construct call and reference types REVERT: 963413d704 Clean-up REVERT: 6f659d9ff5 Incorporated the patch for 'auto' REVERT: 067c8dfee0 Added GetObjectTypeByDecl REVERT: a9c90cf289 - The parameter names are stored with the saved bytecode, unless debug information is stripped - Added asIScriptFunction::GetParam that can optionally return both the name and default argument in addition to the type id - Deprecated asIScriptFunction::GetParamTypeId REVERT: 6c176e1816 Fixed bug in tokenizer for one line comments on the last line of a script REVERT: 1dab5aee29 Fixed bug in compiler where temporary variable could be overwritten when calling overloaded operators REVERT: 9dd7c2360d Added default factory and resize method to the grid REVERT: 61b775eaf6 Fixed crash when calling opCall on a property accessor on a global variable REVERT: 4d55f7fa22 Fixed opCall on global variable REVERT: 9604669f5a Fixed assert failure as the compiler tried to release the same temporary variable twice when compiling an implicit cast for a value received from a get accessor REVERT: 216eadf007 Added support for named arguments in function calls REVERT: 21de525201 Working on the named arguments support REVERT: 04323de214 Parameter names are now stored in the script function object REVERT: 1e24c2043c Fixed RWX section in as_callfunc_arm_gcc.S REVERT: c7b4ee6a3f Fixed minor issue when compiling with AS_DEBUG REVERT: 4f43892139 - Function handles were incorrectly treated as handles in value assignment - Added the flag asOBJ_APP_ARRAY to support registering types that are really C arrays - The GetTypeTraits<T>() helper function automatically detects when to use asOBJ_APP_ARRAY REVERT: 0846005bc0 Releasing 2.28.2 REVERT: f42c8b919c Documentation REVERT: 1a6386773f Documentation REVERT: d70f74c6fc Fixed bug when passing 'null' or 'void' to var type argument REVERT: b5e5cd3f20 Fixed compiler warnings on gnuc REVERT: c308b35a2f Fixed problem with passing ref type to const ?&in parameter REVERT: ef606baca5 Documentation REVERT: ccf0b638e2 Documentation REVERT: 4a90e5f789 Fixed bug with missing implicit ref cast when passing object to parameter as inout reference REVERT: c16bf786c0 - Finished the grid add-on - Improved parser error messages REVERT: 4f5c92257c Starting the work on the new grid add-on REVERT: e64986e99c Optimization to avoid copy when passing ref type to const &in parameter REVERT: 256a0347e7 - Cleaning up some code in the compiler - Improving compiler error messages REVERT: a2c80cb7c1 Optimization to use the copy constructor instead of the assignment when preparing temp object for func argument REVERT: 4d278e48f1 - Added GetTypeId to the dictionary to retrieve the type id of the stored value - The dictionary now has an iterator on the C++ side that supports C++ range-for loops REVERT: be1ae7dd2d Improved implicit cast of object to primitive in math expressions REVERT: a21bb53cf0 When unsafe references is turned on the compiler allows passing literal constants to const references REVERT: 2a610f1140 Fixed memory leak with registered cast behaviours on template types REVERT: 5c72920e84 Fixed assert failure in compiler when using opAssign that returns a value instead of a reference REVERT: 85effdc3c4 Fixed crash when returning primitive value implicitly cast from global handle REVERT: c531b98141 The script array should be allocated with factory functions instead of directly with new REVERT: b7044eba66 Fixed some compiler warnings REVERT: ee85730ad5 Added custom memory functions to CScriptArray REVERT: 2a1fa4b147 Code clean up REVERT: 32c1c6ed7c opCall works for objects returned by property accessor too REVERT: 747429d6d4 Implemented support for opCall REVERT: fc408296d7 Compiler now casts to common base class when comparing two handles REVERT: 404ddb6ae9 GetObjectTypeById crashed if the typeId represented a template instance type that had already been released REVERT: 04fce3aebe Cleaning up the code REVERT: 23923eb083 Completed the implementation of multiple args for opIndex REVERT: 3e0ff93f26 Fixed the pre-compiler condition to avoid use of InitializeCriticalSectionEx on Windows XP REVERT: 32fb54f073 Fixed saving initialization lists for arrays of int8 or any type smaller than 4 bytes REVERT: d3790b0db7 opIndex with multiple args is now working REVERT: 9c92ca69dc Working on adding support for opIndex with multiple args REVERT: 0088e23641 - Moved define of AS_CAN_USE_CPP11 from scripthelper.h to angelscript.h - Implemented C++11 move operators in asCString REVERT: cbe1e5ca4b Minor improvements for the garbage collector REVERT: 074da2467d GarbageCollect() can now be executed with full cycle in parallel with script executions in other threads REVERT: 5dc6679eaf Fixed a problem with the implicit cast of the right hand operand with bitwise operators REVERT: f062e30770 Improved error handling in the asCReader class REVERT: e48ac8d868 Reduced size of saved bytecode REVERT: e5bdf73481 Anonymous objects can now be initialized in expressions with lists REVERT: 6041570dc7 Tokenizer was splitting identifiers that started with keywords that ended with numbers, e.g. int8 (Thanks loboWu) REVERT: 03aa840375 Compiler no longer warns on sign change for bitwise operator with negative enum value REVERT: c124bf7621 Fixed bug with saved bytecode and initialization lists that skip values REVERT: db0f977f46 Fixed crash after loading bytecode with initialization lists holding ref types by value REVERT: 912fef2453 - Implemented closeTo in math add-on - GetTypeTraits<T>() no longer incorrectly identifies arrays as asOBJ_APP_CLASS REVERT: 501dddc0f8 Added a warning if JIT compiler is used without asEP_INCLUDE_JIT_INSTRUCTIONS turned on REVERT: 936325887c It's now possible to use repeat_same in list pattern to tell compiler that all lines must be of the same length REVERT: f0b745162f The Library can now be compiled for WinXP with multithread support again REVERT: f130cd0ffe Releasing 2.28.1 REVERT: 6917ad3479 Fixed crash when registering two or more methods for an object type using template instance types in parameters or return value REVERT: ec936b9e14 Changed the set() methods on the dictionary to take the reference as const REVERT: 89753000ba Fixed crash when attempting to assign a script object to another of another type REVERT: c47f6d738e CScriptHandle will hold a reference to engine to avoid crash if engine is released before the contained reference REVERT: 7ec322ac0e Fixed a mistake in the manual regarding default arguments REVERT: 5ae63f164d Fixed intermittent crash with registered object properties of template instance types REVERT: f5dd9018aa Fixed compilation errors on MinGW REVERT: ff9bf0c1cf - WriteConfigToFile escapes quote characters in default arg expressions - asbuild sample updated to treat the escaped quote characters properly REVERT: 754fb316f5 Fixed memory leak on iOS when passing complex object by value to registered function REVERT: e60390d093 Improved messages when loading invalid bytecode REVERT: 2cd071c73f Slightly reduced size of saved bytecode REVERT: dab8aceddb Compiler was incorrectly converting both results to const in ?: if one of the expressions was null REVERT: 79e8344812 documentation REVERT: e9b2751585 Fixed incorrect bytecode sequence when compiling initialization list for dictionary containing values from global string variables REVERT: d3e4ad4ab0 Implicit cast didn't work in initialization of global vars REVERT: 66add3c907 Fixed crash with THISCALL_ASGLOBAL and virtual methods REVERT: 2fd805500d Fixed compiler error on gcc due to missing abs() REVERT: e193aea59e Fixed compiler error with abs() on VS2005 REVERT: da79c44e89 Test cases for the exponent operator REVERT: b3d9879144 Implemented the ** operator to perform exponent math operations natively in the script REVERT: 499208adae Corrected the use of WINAPI_PARTITION_DESKTOP define REVERT: dc4488b8d2 Multithreading is now supported on Windows Store Apps too REVERT: eeb1b36545 Working on support for multithreading on Windows Phone REVERT: ce1dfe0c07 Fixed linker error when compiling for Windows 8 Store REVERT: fa978db54b Ternary condition operator now converts either case to const @ if the other is const @ REVERT: 2db21bf45f Fixed assert failure in CScriptWeakRef REVERT: bbd426f243 Documentation REVERT: 191aa53171 POD value types are now allocated inline when members of script classes REVERT: b2b4cee717 Improved the to-string callback feature in the debugger to better support template types REVERT: 4108d80480 It's now possible to register to-string callbacks with the debugger to automatically convert objects to readable strings REVERT: a6b3d89f32 Fixed some compiler warnings REVERT: 021ad7fceb Reduced overhead in calls to interface methods REVERT: c372509d6b - The compiler will give an error if the script didn't produce any output. - SaveByteCode will return an error if called on an empty module. REVERT: 84b06064af Compiler wasn't searching parent namespaces when resolving the symbol for class inheritance REVERT: cf4624cce3 Compiler is capable of using constructors with default args as default constructor REVERT: 1938a65407 Linux ARM now supports soft-float ABI too REVERT: 74202997a1 Added verification against attempt to compile AngelScript with -mfloat-abi=soft on Linux/ARM as it doesn't currently work REVERT: 034ddcfa56 Fixed the position reported for errors while compiling global variables REVERT: 709e4911ae Slightly reduced memory consumption as virtual functions no longer store the default args REVERT: 48d854fd95 The compiler now uses the default args declared in the derived method instead of the base method REVERT: 657538936b Added a verification against use of -ffast-math on Linux with ARM as it breaks the native calling convention REVERT: a465d8e1b3 Implemented FindByRef in the script array add-on REVERT: 2e9e945d52 Compiler is capable of resolving ambiguous enum value by looking at destination REVERT: 7034c5979b Improved error message from garbage collector when application holds on to a delegate while releasing the engine REVERT: 0515923942 Added GetTypeId() to CScriptHandle to make it easier to retrieve function pointers REVERT: 3f67b427a8 - Fixed assert failure in Execute when forgetting to set the object on a class method call REVERT: af007781ca Added check against attempts to register multiple list factories REVERT: 3f4ac0ff61 Optimized compiler performance REVERT: 2b29228415 Optimized the lookup of registered types REVERT: 7b66d53235 - Added as_namespace.h - Optimized the symboltable key by using the namespace pointer directly instead of the name of the namespace REVERT: 381bb6e997 registeredGlobalFuncs is now a symbol table for faster lookups REVERT: c44ff55faa - Minor refactoring - Compiler will not use enum value from registered enum types if the module doesn't have access to it REVERT: 47ba2dd67e Optimized IsTemplateType() as used by the parser REVERT: c4403f1665 Minor optimizations and refactoring REVERT: c7d069dfc4 Removed some unused code in AS_NO_COMPILER mode REVERT: 0b6523aa3f Added verification to avoid use of context from a different engine to call functions REVERT: c4abf385c2 Defined default arg for asSFuncPtr constructor to allow trivial instantiation REVERT: 38b5d2a99f - WriteConfigToFile now writes the engine properties too - asbuild sample updated to set the engine properties as informed in config file REVERT: 128640fa94 Another change to fix the warning of used types when removing config group REVERT: ec73595c63 Fixed memory leak on registering opAssign twice for the same object type REVERT: 1135f094c0 Fixed improper warning of used types when releasing engine and having circular references between registered types REVERT: 2b617d6348 Releasing 2.28.0 REVERT: cc0f3a8163 Fixed assert failure in compiler on error in script REVERT: 356ed928db - Updated xcode project - Updated config to detect iOS with 64bit arm REVERT: a34b95ceb6 The engine no longer writes parser errors to message callback in the GetByDecl methods REVERT: cebef64cf8 Fixed assert failure in compiler REVERT: a69c60ae0b Added support for atomics and posix threads with Android NDK 9+ REVERT: 9182d06e77 Fixed compiler errors with Borland REVERT: a4536c50d7 Fixed compiler error and warnings on g++ based compilers REVERT: b002bf3596 Documentation REVERT: 480b6ab2ad Documentation REVERT: 13926bb73b Documentation REVERT: d99ad0c620 Documentation REVERT: 09059b0442 The function declaration for constructors and destructors now show the object type name instead of _beh_x_ REVERT: 11a8f65ac5 GetVarDecl and GetPropertyDeclaration now take an optional includeNamespace argument REVERT: 91e23b4ce1 Fixed crash with chained handle assignment REVERT: 88d5433af0 Fixed GetTypeDeclaration for registered template specializations REVERT: 4f4508e9d1 Added code to detect and warn instead of crashing if application attempts to resurrect script object during its destruction REVERT: 128ae815f0 Added tests for value types with initialization lists as class members and within other initialization lists REVERT: fdc53ac46b Value type in global variable works with initialization lists too REVERT: b6e2bd56d9 Implemented asBEHAVE_LIST_CONSTRUCT REVERT: 4f2cfe0ca1 FindNextLineWithCode() works properly for class constructors where class has non-primitive members too REVERT: 1509f64cb3 Script functions store information on where they are declared to make FindNextLineWithCode more useful REVERT: 310f936497 Added GetModuleCount and GetModuleByIndex for enumerating existing modules REVERT: a421d9c701 Minor compiler performance improvements REVERT: 460076baf3 The object type for script classes that formed circular reference with base class wasn't resolved by gc REVERT: 34e9a54a12 Rebuilding a module without discarding it no longer accumulates memory in the engine REVERT: 9d35b3da38 Improved validations of some arguments in the script engine's methods REVERT: 0f5708a500 List elements are now properly aligned on 4 byte boundaries in the list buffer REVERT: 048ce9a73d - Fixed problem with conditional operator ?: and implicit casts of primitive types - Added warning on implicit cast from float to integer REVERT: b24cb5608c When no expression is given for a list element the compiler will try to use the default constructor. REVERT: 03019d915a Fixed crash in compiler when resolving function pointers with namespace REVERT: a6c47a1c01 - Fixed bug in IsNested when called with parameter - Fixed compiler error in CDebugger add-on when using the AngelScript namespace REVERT: ebf6750136 Fixed bug with implicit casts of large integer constants and uint64 REVERT: 9dff175aa9 Working on the implementation of list factory for the dictionary add-on REVERT: 87d63c8ab3 Working on the implementation of list factory for the dictionary add-on REVERT: cb78f667f1 Working on the implementation of list factory for the dictionary add-on REVERT: ee083233af Working on the implementation of list factory for the dictionary add-on REVERT: 3c542fa2e8 opEquals with funcdef works again REVERT: 43aff7e446 Fixed bug with passing handle to ?& arg with unsafe references REVERT: ff4fc84bc4 Fixed bug in script array resize() method that could cause a crash if reserving too much memory REVERT: 8849d51045 Fixed crash on registering template specialization twice REVERT: a4b2487987 Fixed crash on registering function with autohandles for unknown type REVERT: 30a159398a Implemented asBC_PshListElmnt with a 32bit offset to handle large initialization lists REVERT: 20376008cd Optimized tokenizer with jump tables REVERT: f72d0b3bef Fixed AS_NO_COMPILER REVERT: e9812b7b9e Fixed memory leaks with default args and shared functions REVERT: 66fdc1e031 Continued work on the initialization lists REVERT: 64dee4ba3d The engine now fully uses the declared list pattern to determine the layout of the list buffer dynamically REVERT: 489f3c29ec The bytecode writer now uses the dynamically declared list pattern to adjust the offsets in the list buffers REVERT: 29cc9b43a2 Unified the assembler code on Linux + ARM to support both normal and thumb mode REVERT: 05ae1009f3 Implemented bytecode instruction asBC_SetListSize REVERT: 53557fdf65 The compiler is now using the dynamically declared list pattern to compile the initialization list REVERT: 1e40ff3642 Working on the compilation of initialization lists REVERT: 418019879c The runtime cleanup of the list buffer is now using the declared list pattern REVERT: 41bb1a94c0 Fixed compiler error with asBC_DWORDARG on gnuc REVERT: 78d381352b Fixed null pointer access when calling GetMethodByDecl on template instance type REVERT: 38ede20930 Fixed null pointer access during compilation if JIT compiler is used REVERT: f10d6e278d Fixed stack alignment problem with native calling convention for Linux and ARM REVERT: 70660a47fc When registering the list factory behaviour the desired pattern must now be informed REVERT: 003c8a8b63 - The GET_WEAKREF_FLAG behaviour is now registered for the script types in AS_MAX_PORTABILITY too - Engine now properly supports use of autohandles in template factories - The weakref add-on now works properly in AS_MAX_PORTABILITY too REVERT: b9e9cc9d88 - The initialization list buffer now contains all values regardless of the type REVERT: 53a975d2db - The initialization list buffer now contains the values for arrays of ref types too REVERT: 07dda0a075 - The initialization list buffer now contains the values for arrays of handles too - The exception handler is capable of cleaning up halfway initialized buffers - Removed the new FreeMem bytecode and instead adapted the existing FREE bytecode to handle the list buffer too - The bytecode serialization code adjusts the offsets into initialization buffer to keep them platform independent REVERT: 80faa7239b - The list factory behaviour now receives a pointer to a buffer instead of just the expected length - The list factory buffer contains all the element values for primitive types - Implemented the bytecodes AllocMem and FreeMem for handling buffers for initialization lists REVERT: 7fb7f455d9 Releasing 2.27.1 REVERT: e6502b39f3 Implemented a different ExecuteString that can return a value of variable type REVERT: 9e8608d016 Documentation REVERT: 65eb54a379 >Fixed bug in CScriptBuilder with loading an empty file REVERT: e0b6feced4 Identified problem with doing memcpy to move objects to stack when they are passed by value to application functions REVERT: 1ab07d67b7 void is a legal expression and can be used to ignore output parameters REVERT: 8023214abe Default arguments can be used with anonymous parameters REVERT: 943cb9c4c5 For consistency @null is now a valid expression REVERT: ac05face4b Compiler was incorrectly making a copy of the object in some cases for explicit ref casts REVERT: 048bc213a2 Compiler was incorrectly reusing temporary variables in some expressions with ternary condition operator REVERT: 1471bb9e1b Fixed bug in the compiler when dealing with opAssign that returns anything else than a reference REVERT: 410842f912 Fixed 64bit bug in asBC_SwapPtr REVERT: dfc97c08a2 Implicit conversion to ASHANDLE type will not copy the value any longer REVERT: 0c0ab8a92b Engine no longer accepts registering template factory with autohandles REVERT: 625b1a58dd Reduced memory footprint for registered functions REVERT: f721681007 Fixed mispelling in compiler error message REVERT: 092a6d2af4 Releasing 2.27.0 REVERT: 163ff91031 Documentation REVERT: 469c949cee Documentation REVERT: f69b4e5c62 Documentation REVERT: 1a8c676fb0 Documentation REVERT: e2254db45c Documentation REVERT: 6b5fc10326 Deprecated AddRefScriptObject and ReleaseScriptObject that takes type id REVERT: 5d0b63ccd0 AssignScriptObject now takes asIObjectType REVERT: d75eef1fdc CreateScriptObjectCopy now takes and asIObjectType REVERT: b4fe421ae9 CreateScriptObject now takes an asIObjectType REVERT: f610e98b78 Changed the parameter type of CreateUninitializedScriptObject to asIObjectType REVERT: 24ac34c074 Made the weakref solution threadsafe REVERT: 6d8b93052c - Template arguments declared as const T@ will keep the handle-to-const attribute in template instances - Game sample now uses the weakref add-on REVERT: 09bfb84a63 - Registered the CScriptWeakRef as const_weakref too - Game sample now uses the const_weakref - Fixed bug in templates where 'const T@' would become just 'T@' in the template instance REVERT: ba44b55c68 Testing application registered type with weak reference REVERT: f5e2dd6324 - Added asCreateSharedBool for application classes to create instances of shared booleans - Implemented validations when registering the behaviour GET_WEAKREF_FLAG to check for invalid types and declaration REVERT: f2999368ba Implemented support for weak references REVERT: 2633bd95f7 Updated the trolltech qt makefile REVERT: c8e791cbbd Class methods with default args using parenthesis failed to parse REVERT: e0f6a3604c Fixed compilation error with has_trivial_destructor on g++ 4.8 REVERT: 395cf20287 Derived classes can no longer override base methods with different return types REVERT: 5e88d296dc - Registered value types that didn't have size evenly divisable of 4 weren't allocated with enough space - Template subtypes can no longer be declared as read-only REVERT: 3cda67d03b Function pointers for global functions in namespaces wasn't resolving properly REVERT: f29b1e99ca Fixed memory leak in compiler with shared classes and virtual properties REVERT: d06495eb81 Literal float and double constants accept the format 1e5 REVERT: 4ae4b8ba63 Engine no longer silently accepts modifications to built-in types by the application REVERT: 1ce5a0c7a5 Slightly reduced the amount of work performed by the GC REVERT: 08eb0d6343 - NotifyGarbageCollectorOfNewObject will return the sequence number attributed to the object - Added GetObjectInGC to allow inspecting objects that are currently known by the GC REVERT: 445a811818 GC will call script class destructor before breaking circular references REVERT: 68c17ea33a - GC now gives an id for each object from a sequence and reports this when it cannot destroy an object - Fixed memory leak in thread manager REVERT: 845d582e3e Improved performance of thread manager and with that reduced the overhead of script calls REVERT: fa2b8d2e29 Created the MSVC2012 project for the performance tests REVERT: cf7e05eed6 Fixed bug with max portability and delegates REVERT: ab4d5cbbb6 Nested calls in context could overwrite value in register REVERT: 0d0f783a73 Script array does a better search for matching opCmp and opEquals REVERT: 99d175a2a5 - Added type modifier asTM_CONST to indicate parameters and return types that are const references - GetArgTypeId and GetReturnTypeId now have optional parameter to retrieve the type modifier flags - Added GetFuncDefFromTypeId to allow getting the asIScriptFunction for a function definition REVERT: 58de77b4bc - Compiler didn't detect ambigious enum values when compiling initialization of global variables - RegisterObjectBehaviour and RegisterStringFactory now accepts asCALL_THISCALL_ASGLOBAL REVERT: 4e54cd9821 Added CreateDelegate to asIScriptEngine REVERT: 08eef73b57 Added GetDelegateObject and GetDelegateFunction to asIScriptFunction REVERT: b4844a6b60 Added Discard to asIScriptModule REVERT: cfaf12acf7 Added GetModule method to the asIScriptFunction and asIObjectType interfaces REVERT: 378e463a47 Script array add-on can now sort arrays of handles by calling the opCmp on the objects REVERT: 7de8114c27 Fixed compiler error on FreeBSD REVERT: e71573e4f9 GetExceptionLineNumber would crash if the exception had been raised in a generated function REVERT: 935ac2c30e A compound assignment to a class member could be compiled incorrectly if the lvalue had deferred parameters in expression REVERT: a98222620c Removed previously deprecated methods REVERT: fc33f3d72c Compiler would call a script class' opAssign method as if it was a system function in a specific situation causing a crash REVERT: 6e6bee9033 Fixed presentation issue in manual REVERT: 704e0a26ae Releasing 2.26.3 REVERT: 26fbabcfd8 Fixed some compiler errors and warnings with MinGW REVERT: 90b93bbd58 Added fpToIEEE and fpFromIEEE to the math addon. These are meant to allow platform agnostic conversion between floating point and IEEE 754 representation REVERT: 920ecb07d3 Added Marmalade makefiles REVERT: e03840dfa8 Documentation REVERT: bb66ce1e0b Multi-template types where both subtypes are of the same script class no longer crash the GC REVERT: 0e97c10d01 The context could in some situations attempt to destroy objects on the stack that had never been initialized upon cleanup REVERT: 3826e9b0e2 Documentation REVERT: 41602ce148 Fixed null pointer access error when compiling enums after discarding a module with global variables REVERT: 35d85789c1 Parent namespaces are now searched recursively for matching global functions REVERT: b6bc0fa31d Parent namespaces are now searched recursively for matching global variables REVERT: 0072e93cc5 Removed accidental use of C++11 feature REVERT: 678539b011 Parent namespaces are now searched recursively for matching types REVERT: f3d4090a92 Created MSVC 2012 project files for the samples REVERT: 76406e04c8 - Function handles for overloaded functions are now implicitly resolved by the compiler by deferring the choice of the function until it's used - Added methods GetSectionCount() and GetSectionName() to builder for enumerating the included script sections REVERT: 5a09599c66 - Script array add-on will not allow subtypes of reference types unless they are handles if asEP_DISALLOW_VALUE_ASSIGN_FOR_REF_TYPE is turned on - AssignScriptObject will no longer do anything for ref types if asEP_DISALLOW_VALUE_ASSIGN_FOR_REF_TYPE is turned on - Compiler will implicitly pass handles to ? parameters when asEP_DISALLOW_VALUE_ASSIGN_FOR_REF_TYPE is turned on REVERT: cc1adc22f3 The engine property asEP_DISALLOW_VALUE_ASSIGN_FOR_REF_TYPE disables value assignments for reference types REVERT: 127dc3f474 Fixed bug in compiler where the class constructor could become invalid if two classes with the same name was declared in different namespaces REVERT: aa840554fa RegisterObjectProperty() will now return an error if the offset is larger than a signed 16bit value which is what the VM supports REVERT: 7ef148b8da Fixed a null pointer access exception that could occur with delegates and overloaded methods. REVERT: 49777a87c0 Delegates are now fully functional REVERT: 163d5da7d6 Working on the implementation of support for delegates REVERT: 111198ae31 Working on the implementation of support for delegates REVERT: 88dc1379fa It's now possible to create and call delegates for script classes within the scripts REVERT: 46bc5ff610 Working on the implementation of support for delegates REVERT: 2145a7e4e4 Working on the implementation of support for delegates REVERT: 248af7b8e8 >Compiler was generating invalid bytecode when compiling var declaration with initialization using void opAssign REVERT: eb79d0e4dd Working on the implementation of support for delegates REVERT: bfba4cda26 Working on the implementation of support for delegates REVERT: bbb1f17d6a Fixed the config for gnuc with -std=c++11 REVERT: 92526c9384 Releasing version 2.26.2 REVERT: 82a417e16c Testing class without its own destructor, but a member that has a destructor REVERT: b05d6ed0bc Integer constants are now considered signed by default REVERT: 352e4a9665 Increased maximum limit of number of functions in the engine from 65535 to approximately 10^9 REVERT: 84fb69d44d Implemented helper function asGetTypeTraits<T> to aid in the registration of value types REVERT: 4baf19bdc1 Changed the code back to emit a warning instead of an error on unreachable code as it was often used by developers to temporarily skip parts of the code during testing REVERT: 58f7114344 Added engine property asEP_COMPILER_WARNINGS to allow applications to turn off warnings REVERT: 4e16f53084 Updated trolltech makefile to allow it to compile as_callfunc_x64_msvc_asm.asm on 64bit Windows REVERT: ae2a613513 Updated gnuc makefile to make it easier for Linux package maintainers REVERT: 6917fe4375 - Fixed memory leak with MinGW64 due to wrong configuration in as_config.h - Fixed some compiler warnings on 32bit x86 with gnuc REVERT: afcd6ce51a Fixed native calling convention on MinGW64 4.7 REVERT: 28c6a88a92 Initializing class member in declaration with a non-default constructor produced invalid bytecode REVERT: beae1ee289 Evaluating -2147483648 / -1 is now treated properly with a script exception REVERT: 66ff811314 The compiler wasn't giving error when default arg expression didn't match the parameter type REVERT: fb3077e084 - Fixed crash with native calling conventions on Linux 64bit when compiled with optimizations - Changed Android make file to make sure thumb mode is turned off REVERT: 29baba179d Fixed a problem with shared global functions being compiled in every module thus causing memory leaks. REVERT: b679d29a75 Fixed problem with native calling conventions for Android REVERT: c71c886e15 Fixed crash that could happen on releasing the engine if some garbage collected object was still kept alive by application REVERT: 6d57a66d41 - Improved error messages when GC can't destroy an object - Fixed bug in compiler related to implicit casts of reference types in global variables REVERT: ff4efc0def Releasing 2.26.1 REVERT: 65df60452c Documentation REVERT: d067b771c6 Fixed memory leak that could happen upon script exception REVERT: 565a27131a Fixed some compiler warnings on gnuc REVERT: bbd2f37050 Fixed mixup of script section ids in loaded bytecode REVERT: de71c820e0 Heredoc strings keep the last linebreak REVERT: 244c8b93ec Added test to catch memory leak on exception REVERT: 087b1620ea Compiler generated invalid bytecode when compiling expression that called function pointer returned from virtual property accessor REVERT: 10591f62cb Fixed sharing of funcdefs when loading from bytecode REVERT: 7fb8d31918 - Compiler no longer emits warnings on implementing the same interface multiple times - Compiler will report error if virtual property in shared interface doesn't match first declaration of the interface - Funcdefs are now automatically shared between modules if they are identical REVERT: 40c0e2d078 Fixed crash in compiler when compiling call to imported function with default arguments REVERT: a8d7810c48 Added support for octal (0o777) and binary (0b1111) numbers. REVERT: e84120228d Changed the constructor of the complex math add-on to support implicit conversion from primitive to the complex type REVERT: 62cb909f5e Added a couple of extra tests for validating native calling conventions REVERT: 651da8563b Primitives can now be implicitly cast to value types via a call to the constructors REVERT: cd027e8944 Added support for native calling conventions on Linux with ARM and gnuc compiler REVERT: 75d05e493d Fixed null pointer access in compiler when compiling default constructor for a class with invalid member initialization expressions REVERT: 6500bddb0a Fixed assert failure in compiler with nested access to virtual property accessors REVERT: f877d7da7f Fixed assert failure in compiler with use of copy constructor for value type with unsafe reference REVERT: 13800535dd Interfaces that inherited other interfaces didn't expose the inherited methods REVERT: 4d849e316f The compiler wasn't considering the correct namespace when parsing methods of classes and interfaces within namespaces REVERT: e63d3bf737 Add-ons now use asAtomicInc/Dec to provide thread safe reference counting REVERT: 6306190287 Templates now support multiple subtypes REVERT: a3e4622396 Working on the support for multiple template subtypes REVERT: 5e8f34aa92 Fixed bug with loading bytecode that used registered value types that could cause unexpected behaviour REVERT: afa104d75b Working on the support for multiple template subtypes REVERT: 14912a7233 Fixed more bugs with the allocation of function ids REVERT: dc50cdb79e Fixed bug with the allocation of function ids, which could cause random behaviour for very large scripts REVERT: e9ef0269d1 Improved error message when encountering non-terminated string literals REVERT: 96f706c82e Fixed the line numbers for for-loops REVERT: 41c3192ef1 Parser doesn't complain with empty declaration in classes REVERT: b14f0270bc Working on support for templates with multiple subtypes REVERT: 83ad5f31b6 Fixed bug in compiler with complex expressions in default args REVERT: 64c6af957b AssignScriptObject and CopyFrom are now correctly calling the script class' opAssign method REVERT: 68a3f0106d Improved error message from CreateScriptObject when called for type that doesn't have default constructor REVERT: 2aeac5bcc9 Fixed segfault in GetGlobalVarIndexByDecl on passing invalid declaration REVERT: 1bccaf6209 Fixed compiler error on Mac OS X in with the atomic functions REVERT: e203a72248 - Documentation - Releasing 2.26.0 REVERT: 64e702b93e Added the global functions asAtomicInc and asAtomicDec to aid the development of portable and threadsafe add-ons REVERT: ad2c2b8218 Fixed bug where a script class could be incorrectly marked as non-garbage collected when including a garbage collected member by value REVERT: 54b827a2af Script arrays could be falsely marked as non-garbage collected as the asOBJ_GC flag wasn't set when the template callback was invoked REVERT: cad1f0fe53 Improved the criteria for marking script classes as garbage collected by taking advantage of 'final' REVERT: a3ecbb4c1a Fixed uninitialized value in CompileGlobalVar REVERT: dac8b665ba Prepared asIObjectType for future implementation of templates with multiple subtypes REVERT: 1e8e0706c0 Fixed crash that could happen discarding a module and the garbage collector held a reference to an object declared in the module REVERT: c18cc41674 Fixed unnecessary 'unreachable code' on empty statement REVERT: 8f357ab291 Added GetDefaultNamespace REVERT: b46b77d923 Slight reduction on overhead of calling system functions REVERT: fe73bec0f0 Fixed null pointer access with GetLineNumber() for script function without debug info. REVERT: d28efa756f Fixed a couple of compiler warnings REVERT: 5733e8a612 - asPrepareMultithread now takes an optional argument for using a shared thread manager in multiple dlls - asGetThreadManager and asIThreadManager for retrieving an existing thread manager REVERT: f6d01bef2e Fixed parser bug with default args REVERT: d923facfb9 Fixed some compiler warnings on MSVC 64bit REVERT: 45065e4061 Documentation REVERT: 39259401a2 Reduced size of executable by avoiding code inlining in templated functions for taking function pointers REVERT: d70e048945 Constructor with const &inout is now recognized as copy constructor with asEP_ALLOW_UNSAFE_REFERENCES REVERT: 345c8d9fe4 - Loading bytecode always failed if global variables had been disabled, even if the saved bytecode didn't have any global variables - Fixed crash in compiler when compiling default constructor if class inherited from base class without default constructor - CScriptBuilder::AddSectionFromMemory() now requires a name and an optional length for the buffer in case it is not null terminated - Switch case where default case was not last now gives proper error message and not a parser error - Documentation REVERT: 822faf15dc Compiler wasn't considering the correct implicit namespace when looking up datatypes REVERT: 04096c6519 - Minor bug fix - Documentation REVERT: e6f2db3219 Fixed bug in compiler with passing temp handle to function taking inout ref to object REVERT: b774ce9007 Added AS_NO_MEMBER_INIT to provide backwards compatibility for those who encounter null pointer exceptions due to the new order of member initialization. REVERT: f7ce48895d Including mixin classes with member initialization from other script sections now works REVERT: 2c49ea7b07 Minor adjustments REVERT: 2a8244ad2c Added more tests REVERT: 0f5d2c6531 The derived class' members should be initialized before the base class' constructor even when the base class' constructor is implicitly called. REVERT: 563b013c7f Changed order of initializations so that members without explicit expression are initialized first before the rest of the constructor is executed. REVERT: 27b1419c14 Fixed memory invasion that could occur during the initialization of class members in explicitly declared constructors REVERT: 3e4a2340b8 Cleaned up the code REVERT: 712677f4f0 Adding additional test cases for initialization of class members in declaration REVERT: 060d91f04b Saving and loading bytecode with scoped types in global variables or as class members is working again REVERT: bf4ff99910 - Removed use of AS_NEW to make the initialization of members feature official - Cleaned up the code a bit - Class constructor will now have correct line numbers for debugging the initialization REVERT: 8a7acd5e8d Fixed shared types getting the implemented interfaces duplicated if compiled in multiple modules REVERT: b85b78db03 - Fixed compiler errors on Wii U - Fixed bug in script array when comparing two arrays for equality and only opCmp had been implemented in the element type REVERT: ff14d6f878 Fixed bug in XBox 360 native calling convention code when returning simple objects by value REVERT: 052691855e It is now possible to initialize all types of class members in the declaration REVERT: b84593d557 - Fixed global variables of scoped reference types - Members of all types are now properly initialized by the bytecode in the constructor REVERT: 136a940b24 Working on the class member initialization REVERT: b4d086acc8 Fixed problem with saving/loading bytecode that passed function pointers in a function parameter REVERT: d92fd842ec Fixed crash that occurred when using asCALL_GENERIC with asBEHAVE_TEMPLATE_CALLBACK REVERT: 5d2b2dad0c It is now possible to initialize handles directly in the class declaration REVERT: 0fa73f11b1 Added a new test for bytecode optimization REVERT: 02ce3e21fd It is now possible to initialize primitives directly in the class declaration REVERT: 00aa33cce3 Unified the code for compiling initialization of local and global variables. The same code will also be used to compile initialization of class members. REVERT: e10fd77ffc Prepared the tests to work with AS_MAX_PORTABILITY REVERT: ad648fc9e4 - Implemented the generic calling convention wrappers for the script handle add-on - Implemented the generic calling convention wrappers for the missing methods in the std::string add-on REVERT: d9d2fdebd2 Implemented the generic calling convention wrappers for the missing methods in the script array REVERT: 9837e48d5b Working on the class member initialization REVERT: d27c0956fd Planning REVERT: b2d2bcafbe Fixed further compiler issues with Marmalade REVERT: eaeca2b9b6 Namespaces are now properly considered when compiler searches for property accessors REVERT: 148e376241 Working on the class member initialization REVERT: e06750d82a as_config.h now identifies Marmalade without the need to manually define anything in the project settings REVERT: b6a9f3cc50 Added MSVC2012 (aka MSVC11) project files REVERT: 6fd558fd24 Parser now accepts initialization expression in class member declaration REVERT: ff011f1740 Planning for the support for initialization of class members directly in the declaration REVERT: bf75518670 Added support for registering class methods as global functions REVERT: b0dd05ca8c Fixed compiler warnings when compiling with AS_NO_THREADS REVERT: 51ffa6e375 Fixed incorrect static_cast on MSVC when attempting to register method for class with virtual inheritance REVERT: c1008c660b Fixed rare crash after an object type had been deleted prematurely by the engine REVERT: 3126ea32fd - Updated the msvc10 project files - Changed the unreachable code message to be an error instead of a warning - Removed misleading error about not all paths returning values after unreachable code error REVERT: 1b8adc203b Releasing version 2.25.2 REVERT: e68a28049b Fixed incorrect error messages for mismatching property accessors when this had been disabled by application REVERT: e2f8003365 MSVC++ 2010 project settings REVERT: 1ade7d6f97 Documentation REVERT: 41ccde3089 Fixed compiler warnings with Marmalade REVERT: 83794823b1 Documentation REVERT: 041ae2ef34 Changes to improve compatibility with Marmalade REVERT: f7c7434b77 - Fixed some compilation errors with MSVC6 - Fixed some minor memory issues detected by valgrind REVERT: 1730c80246 Garbage collector now uses a memory pool to avoid dynamic memory allocations while processing REVERT: a49e3ae9ef Factory stubs are no longer added to the GC REVERT: 491badfd66 Object types are no longer added to the GC while the module still references them REVERT: e8727832d2 Global properties and their initialization functions are only added to the GC when the owning module releases them REVERT: 265cc763b3 Cleaning up the code a little REVERT: ebc7b8e7c5 Cleaning up the code a little REVERT: 81f030fd0c Cleaning up the code a little REVERT: 0148125eb5 Cleaning up the code a little REVERT: bcaa375ab2 Cleaning up some comments REVERT: edb7dac6b6 Script functions are now only added to the GC when the owning module releases them REVERT: 68763f9697 Optimized bytecode sequence for storing a handle returned by a function into a local handle REVERT: 7faccc0a28 import functions can now be declared with default arguments without crashing REVERT: 996bc96536 ScriptBuilder now supports metadata for entities in namespaces REVERT: 018077a02b Removed some unnecessary ref copies when assigning handles REVERT: ee1cc34c3a Functions that return a handle from a local variable now avoid an unnecessary ref copy to a temp variable REVERT: 0d833c4ad4 Mixin classes can now implement interfaces REVERT: da620583d2 Added a couple of tests that validates the optimized bytecode sequence. REVERT: 3b44880a3d Reversed iteration over bytecode in OptimizeLocally REVERT: 8a22a4e5f1 Fixed some compilation problems with gnuc in the sample projects REVERT: 2fcd03bba9 Removed the temporary bytecode DiscardVar as it is no longer necessary with the localized bytecode optimizations REVERT: 7ac59a2128 Changed to localized bytecode optimizations for greatly enhanced compilation speeds in large complex functions REVERT: 6af06d828b Problem with template types when non-default factory was registered before the default factory REVERT: 0084e841ff Releasing 2.25.1 REVERT: 4b6187ac9a Added validation against duplicate registration of global functions or object methods. REVERT: 4b6ad47e9d Improved the way function overloads are matched against arguments so least conversion cost for all arguments wins REVERT: cb63b06a13 - The context's line callback is now invoked one extra time just before leaving the Execute() method to allow listeners to catch state changes - Made some improvements towards compatibility with Marmalade - Implicit conversion from interface to another implemented interface is now working - Compiler now detects circular inheritance between interfaces too REVERT: 3aac556ebf Shared classes will now validate that declared members exist in the original declaration during compilation REVERT: 7a1a51ec36 - Shared enums in pre-compiled bytecode were not treated as shared when loading - Improved error messages when loading bytecode with shared types that doesn't match existing shared types REVERT: 96cc61c21d Interface can now inherit from other interfaces REVERT: 304a73c50f Compiler wasn't showing error for virtual properties without any accessor REVERT: 69ce06b8c8 Fixed compiler bug when compiling function that takes out reference of a type where opAssign returned a value REVERT: 2e22fd58bd - Fixed bug in compiler when compiling property get expression that returned a reference to an object, but the reference wasn't used - Fixed bug with virtual methods returning objects in memory on ARM platforms REVERT: 815ca5f83d Compiler would incorrectly find global functions when compiling function calls as post ops REVERT: c147c81cc3 GetLineNumber() could crash when called for nested context calls REVERT: 13f07a64ad - Fixed comparison with wrong enum type - Added -fno-strict-aliasing to code::blocks project REVERT: 6bc568a45c Fixed crash with GNUC 64bit targets, caused by previous changes for MinGW 4.7 REVERT: 0c55095996 MinGW32 4.7 is now fully working REVERT: 46bee9cce8 The message callback is now working on MinGW 4.7 REVERT: 750ed116ba Working on support for MinGW 4.7 REVERT: 82b4678fe2 test_feature can now be compiled with mingw 4.7 REVERT: 4655ff9c5b - Attempt to reproduce reported problem - Updated code::blocks project for test_feature REVERT: 5ec126d774 Fixed problem with exception handling after loading pre-compiled bytecode when class constructor takes object in argument REVERT: f9423e413f Trying to reproduce a reported bug REVERT: 45f8acf36d Fixed native thiscall on MinGW 4.7 REVERT: e8f0d75b70 Fixed bug in script builder add-on with parsing metadata for invalid script REVERT: f7244e108b Fixed bug with NOCOUNT object when copying script class members REVERT: 4df8978e1a Fixed compiler assert on unary negate operator on void expression REVERT: 6c64194b16 Registering template specializations for templates without default constructor is now working REVERT: 841c53caa1 Fixed including mixin from a different script section REVERT: baed08b3c3 Working on adding support for interface to inherit other interfaces REVERT: 915054c550 The profiler now do all the summarization at runtime instead of using a temporary file and then summarize it on exit. REVERT: 4e06a3e41e Implemented an inline profiler REVERT: 4405a648af - minor optimization to the string pool in the string add-on - script class properties can now be declared in the same statement separated by comma REVERT: aec13a673b Releasing 2.25.0 REVERT: cbb5dc25d5 - Documentation REVERT: 1dcc900474 Compiler gave error when compiling non-const methods that returned const references to members REVERT: 7235b27677 - Fixed problem with namespaces and construct calls - Fixed comparison with infinity for float and doubles - Fixed serializing bytecode with calls to functions with variable argument REVERT: 0df32c02b3 - cmake project change to link with pthread on posix systems - Documentation REVERT: 1feecbdf8b - Added an optional argument to asIScriptModule::SaveByteCode to strip the debug info - Added an optional argument to asIScriptModule::LoadByteCode to determine if the bytecode contains debug info or not - Fixed bug in CSerializer related to extra objects REVERT: 8e42b4f058 Added wrapper for std::string::operator== since it may be implemented as a member function or global function on different platforms REVERT: 2e14dfb588 Local function pointers variables now properly take precedence over class methods of the same name REVERT: f04a384076 Fixed null pointer access when empty mixin class included mixin class REVERT: 0486d2aacb - Completed the mixin implementation - Added check for duplicate declaration of class methods REVERT: 8418fa5d3a - Mixin classes with methods can now be included in a class to automatically receive the methods - Renamed cByteInstruction to asCByteInstruction for consistency REVERT: 4348cfe6ab Mixin classes with properties can now be included in a class to automatically receive the properties REVERT: a658f86674 Improved build performance when optimizing bytecode with a large amount of conditions REVERT: d320f45d00 - Improved error message when parser encounters unexpected end of file - Added check for too many labels in a function to avoid crash when the code is too large to handle - Error messages when application does something wrong now include the return code for easier interpretation - Added performance test for compiling a complex function with many levels of if/else and switch cases REVERT: 976af0891e - asOBJ_APP_PRIMITIVE and asOBJ_APP_FLOAT types can now be passed by value in native calling conventions on 64bit Linux and Mac - Fixed a problem where a script object would be copied incorrectly to a temporary variable during a value assignment - Working on mixin classes REVERT: 99b98670a3 - fixed problem in CScriptArray::SetValue - working on mixin classes REVERT: c9f2b55d70 - Added GetTypeId() for asIScriptFunction - Parsing of mixin classes is working REVERT: 209bb1f71b - Added asOBJ_SCRIPT_FUNCTION flag to identify the object type that represents script functions - Added asIScriptFunction::IsCompatibleWithTypeId() - CScriptHandle::Cast() properly handles function pointers REVERT: 5771fda337 - Added copy constructor to CScriptArray - Added GetType to CScriptHandle - Fixed problem with parsing default argument expressions - Improved error message when parsing invalid default argument expressions REVERT: a98da50c9a - Fixed bug with temporary variables being reused too early in compiler - Fixed crash in garbage collector when automatic collection is turned on REVERT: 8604c70f91 Replaced the std::multimap with asCMap REVERT: aaa77e3289 The module's global functions are now also stored in a symbol table for faster lookups. REVERT: f28a830bae - Added asOBJ_APP_CLASS_ALIGN8 used to inform AngelScript that a type may need to be aligned on 8byte boundaries - The template callback behaviour now take a second argument to allow the application to tell the engine if an instance shouldn't be garbage collected REVERT: f648fafe02 - Fixed memory leak with virtual properties in script interfaces - Fixed compile problem with gnuc - Added support for 64bit types in Android native calling conventions REVERT: 6380a62713 - Fixed crash on callstack cleanup after script exception - Registered properties are now also stored in a symbol table - Added mapping from address of global property to the asCGlobalProperty for quicker walk through of the bytecode REVERT: 6f475e4df2 Added symbol table for quicker searches for global properties when compiling scripts and loading bytecode. REVERT: c65e1ab3ae Fixed bug with returning handle in a function declared to return the object by value. REVERT: 11eaec95e1 - Improved performance of tokenizer for large initialization lists - Improved performance of parser for scripts with a lot of statements REVERT: 0e6bb72b26 Loading large bytecodes will be much faster REVERT: 167b8e166d - GetEnumByIndex and GetTypedefByIndex wasn't returning a valid typeId when the type was not in the default namespace - Inheriting from a class or interface in a different namespace didn't work - Functions and class methods didn't accept the scope operator in the return type - The VM will catch C++ exceptions thrown by the registered functions and set a script exception. This can be turned off by AS_NO_EXCEPTIONS if exception handling is not supported REVERT: 6cfcb5e60a Releasing 2.24.1 REVERT: fd7b732e45 Documentation REVERT: d025b61900 Fixed crash in script array when the array was created with a very large initial size REVERT: 98c13e007c - documentation - fixed compiler warnings on MSVC 64bit - fixed 64bit bug with saving bytecode REVERT: f222db5243 - Fixed cmake project for MSVC 64bit - Fixed compile error with registering class methods from classes with multiple inheritance on MSVC 64bit REVERT: b9a4d3b455 - Fixed bug with registering global property from a different namespace - Documentation REVERT: 52d7332335 Documentation REVERT: 413a92c960 - Fixed memory invasion when script allocated script class that had other script classes as members - Added JitEntry instructions in the factory stub functions and generated default constructor REVERT: 75c4b78578 Fixed linker error in scriptstdstring.cpp on XCode 4.3 with CLang++ 3.1 REVERT: a9548a7c2b Fixed bug when registering objects in namespaces and the used types are registered in the same namespace REVERT: f993bb9aa3 - Fixed some warnings reported by PVS Studio - Corrected a bug with reporting the line numbers in the callstack REVERT: 59c73feba6 Reduced recursiveness in compiler to allow it to compile extremely long expressions without stack overflow REVERT: d816801024 Fixed bug in bytecode writer and reader related to 64bit platforms REVERT: 9d6b257f07 Fixed bug in bytecode reader REVERT: a33a820aa8 - Fixed a problem with saving bytecode on 64bit platforms - corrected the autowrapper for gnuc REVERT: 5c3fa327d8 - Compatibility improvements for Android - Added gnuc project for game sample - Made game sample work on Linux 64bit - Added tests to catch problem with misaligned 64bit arguments in native calling conventions REVERT: e8fff8d571 - minor fixes - added cmake projects for test_features and test_performance - upgraded test_performance to work with latest release - made game sample work for OSX REVERT: b2ce9920f3 - AS_64BIT_PTR is now defined in angelscript.h instead of in as_config.h - When the engine receives a request to abort a script in a nested call it will now forward the request to the outer call, after aborting the inner call - The script array will forward requests to abort a script to the outer call when performing comparisons, which uses nested calls REVERT: ec0e33bfb5 - Function pointers can now be invoked from arbitrary expressions without first assigning them to a variable - Bytecode optimizer exchanges some more sequences with shorter ones for better performance REVERT: d74ddf5bf8 Reduced the size of saved bytecode by not storing the namespace of class methods REVERT: e42d662c19 Aborting a nested script call could cause a crash in the VM REVERT: 20e937b89c The garbage collector could enter an infinite recursive loop if invoked while calling a class destructor REVERT: c112fa2c63 Fixed compilation error in scriptbuilder.cpp on XCode 4.3 with CLang++ 3.1 REVERT: 300730597d IsVarInScope() and GetAddressOfVar() now works properly even before Execute() REVERT: 082e1f137e - Fixed incorrect division operator for Complex add-on - Scope operator can now be used in inheritance list for classes REVERT: 363cc8209b Fixed bug in GetFunctionByDecl() REVERT: e104a9abf0 Fixed problem with loading bytecode that contained arrays of function pointers REVERT: fc795e7e76 Created an internal namespace object to manage the namespaces rather than keeping the name of the namespace in each entity. REVERT: 94fa955e10 - Removed functionality where interfaces would be automatically shared if the declaration was identical. This was already deprecated in version 2.23.0 - Improved internal handling of namespaces REVERT: e6ef334602 Stack pointer wasn't restored correctly when reusing context, which lead to memory invasions REVERT: 17c1609244 Parser can now parse templates where the subtype is in a different namespace REVERT: 9befec6611 Parser now recognizes declarations where the type is declared in a different scope REVERT: e5d334f3a7 Releasing 2.24.0 REVERT: b31d48ff3b Documentation REVERT: ddf75c3282 Documentation REVERT: ece25f2509 - Fixed a bug in compiler with ASHANDLE - PrintException helper is now able to understand the nested contexts REVERT: 82cc1c11b1 - Fixed bug in IsHandleCompatibleWithObject - Script array now uses nested contexts REVERT: 65a8aae38e - Improvements to the CScriptHandle - Added optional output argument to IsNested() that returns the nesting count REVERT: 0051c58ecc Finished the nested context feature REVERT: 66eadbe90d Working on the nested context feature REVERT: 02fe301794 Fixed bug with virtual property access with index and variable type argument REVERT: 2abb4768af Working on the nested context feature REVERT: 2ce48c066c Renaming context members to add prefix m_ REVERT: 16ad83fe8d Working on the nested context feature REVERT: 6d0ea2afc4 Fixed problem with returning float/double on XBox 360 with C++ compiler optimizations turned on REVERT: e5514db417 - Fixed bug on XBox 360 when calling registered function with more than 8 arguments - Outlined what needs to be implemented for the nested use of the context REVERT: 35316d19ba - Updated change list - Update xcode projects to remove unwanted file references REVERT: 3530f61b1e Fixed SegV when calling message callback as virtual method REVERT: 76686dff16 Added test for a bug report REVERT: 99e9f3a445 Documentation REVERT: 19e8d5550d Added test for a bug report REVERT: cf1bbc500f Updated the samples to work with the interface changes REVERT: b6ca4d8fcf - Templates with const subtypes are now properly handled - Cleaned up the code for native calling conventions on XBox 360 REVERT: 6ddcd90065 Improved compatibility with native calling conventions on iOS REVERT: 4ec87b9c33 Renamed CopyScriptObject to AssignScriptObject REVERT: a66a8e581f Code cleanup REVERT: fb2a64ff95 Added CSerializer::AddExtraObjectToStore() REVERT: 9430cde8bd Disallow register of multiple ref casts to the same type REVERT: 49919e6d72 - Added method CreateUninitializedScriptObject - Changed CSerializer add-on to use it REVERT: 7dc188db9d The string pool now supports multiple engine instances. REVERT: 4b0dde9482 The engine can now hold multiple different user data REVERT: 1c85549200 Improving stability when loading invalid bytecode, e.g. do not set the length of the arrays if there is a chance not all elements will be correctly populated, and also avoid allocating large amount of in arrays after an error occurred. REVERT: b97b1f7185 Fixed crash with releasing a suspended context REVERT: 300587df3b Loading faulty bytecode is now much safer REVERT: ecf66b537f SaveByteCode() was crashing when the script contained assignment of POD types without explicit opAssign method REVERT: 2036d39da0 - Added asAcquireSharedLock and asReleaseSharedLock - Made the string pool thread safe REVERT: 71a61e73cb Properly handling out of memory when allocating from memory pool REVERT: 56f091e871 Added verification for out-of-memory conditions to all places where memory is allocated in order to improve stability REVERT: 5b247b7dad - Changed BindImportedFunction to take a asIScriptFunction pointer - Deprecated context::Prepare(int id) - Deprecated generic::GetFunctionId() and GetFunctionUserData() - Deprecated objecttype::GetFactoryId...() and GetMethodId...() - Changed objecttype::GetBehaviourByIndex() to return asIScriptFunction* REVERT: 00c1eccb32 Changed GetAddressOfVar to return address to value even for reference parameters REVERT: c4f6c81527 - Improvements to support for native calling conventions with Android, ARM, gcc - Fixes for namespace with registered types REVERT: 272f78a3be Implemented the read/write lock object using critical sections and semaphores to get a fair non-starving implementation. REVERT: e7d46967aa The SRWLOCK synchronization object on Windows is only available from Vista onwards, so to maintain compatibility with previous versions I'll write my own ReadWriteLock object. REVERT: 4afd186c09 Deprecated some of the methods that work with the function id instead of the function object REVERT: b3a32f9a63 - Added asAcquireExclusiveLock() and asReleaseExclusiveLock() - Array is now creating the shared cache in a thread safe manner REVERT: cc8d9ef91a Implemented read/write thread synchronization to avoid bottlenecks with critical sections for retrieving user data REVERT: cfeda85e84 Fixed problem on Android with native calling convention and class methods REVERT: 45200732f2 The array add-on takes advantage of the multiple user data types to share its cache between arrays of the same type REVERT: 1d5c49ac19 The object type can now hold multiple different user data REVERT: 0c7ea2fa55 Fixed compilation error on platforms with posix critical section REVERT: eaa23c4b25 Fixed crash on Mac OS X 64bit REVERT: b4d50d018a Fixed error in compiler when compiling function call with @& parameter and asEP_ALLOW_UNSAFE_REFERENCES REVERT: 53de7c1205 Fixed problem in parsing enum declarations where unexpected tokens might get ignored REVERT: 00f06c784d Fixed error in compiler when compiling function call with @& parameter and asEP_ALLOW_UNSAFE_REFERENCES REVERT: b1b599f418 Fixed error in compiler with index operator on a value returned by a property index accessor REVERT: b1bb87406b SetValue is now a public method of CScriptArray REVERT: 0ae24bfb8f Updated project REVERT: 0f49de547c Fixed the example for how to create a script array from C++ REVERT: 313287c542 Fixed 'string subscript out of range' REVERT: 204e938da4 Fixed assert failure on compiling unary plus operator on non-primitive REVERT: 20f2185950 Fixed accessing entities in global scope from within a function in a namespace REVERT: d87c453d44 Created asPrepareMultithread() and asUnprepareMultithread() REVERT: 9dc98b674b Fixed the crash when releasing the last engine if it happens after the global critical section had already been released REVERT: 9d5dc33d73 Fixed potential crash when a context is prepared but never executed REVERT: 84adddc22e Attempting to reproduce reported bugs REVERT: a5800a26b6 Re-enabled language extensions to avoid problem when compiling together with Microsoft's Platform SDK version 6.0a. REVERT: 64dcf1b629 Releasing 2.23.1 REVERT: 6f282e045c Documentation REVERT: 806f445ef2 documentation REVERT: 0680ca0fe7 conditional use of the template keyword as the code didn't work on gnuc REVERT: b20006988b - Fixed assert failure - Fixed compile error with autowrapper on Android - Fixed configuration for Android REVERT: e2f4c98d1d Fixed gnuc x64 inline assembler REVERT: 0e81a9505a Fixed bug in VM where it might do an undetected null pointer access. REVERT: dbe6e6ef37 AS_USE_STLNAMES=1 makes the add-ons register their methods with the same names as corresponding method in STL REVERT: 040b54c020 Attempting to fix the problem with native calling conventions on 64bit Mac 10.7 REVERT: f9f6c76065 Disabled use of string pooling by default as it was not threadsafe REVERT: 264530635e Fixed crash with compiling private virtual property accessors REVERT: 8a89107b06 Updated the stdcall and thiscall implementations to copy eax:edx to a local variable that will then be returned REVERT: 36d13dae42 Updated all cdecl implementations to copy eax:edx to a local variable that will then be returned REVERT: f98569a2b8 Fixed the inline assembler on gnuc REVERT: 6c3b764020 Fixed missing LEAVECRITICALSECTION when the thread manager has already been removed. REVERT: 0d34c260a7 Trying out a theory for fixing the problems on 32bit Mac REVERT: 9d3d439335 Fixed compilation error with AS_NO_THREADS REVERT: 68bf4c8354 Fixed problem with opAssign on CScriptArray when the destination had a reserved buffer larger than the source array REVERT: 4b86fcf5d5 - Improved thread safety of the thread manager when multiple threads created separate script engines. - Added #ifndef ANGELSCRIPT_H check before #include <angelscript.h> in add-on headers REVERT: d84b13e07c Fixed crash on 32bit Mac OS 10.7 with XCode 4.3 REVERT: d4c6211be2 Documentation REVERT: 366417cae7 Fixed the StringFactory to copy the full string length and not just up to the null char. REVERT: a9bbb56070 Fixed crash when loading bytecode with shared classes in specific scenario REVERT: a9112fff50 Fixed the for(;;) statement not executing REVERT: a1c03f50f8 Changed the way the context knows if a local variable is allocated on the heap or the stack, thus made it quicker to set up the call frame when calling script functions. REVERT: bce455c2da Fixed problems with global property accessors REVERT: aa72a1672e Fixed shared global functions REVERT: cdabc43e95 Write error message to callback if a call to context's Prepare or Execute is invalid REVERT: 9cdb3c1e39 Optimized how call state stack is allocated to reduce amount of memory copied for each new call. REVERT: 777e9e8282 Compiler no longer accepts non-handles with the identity operator 'is' REVERT: e13dfb2270 Testing REVERT: 62b1beefa3 code cleanup REVERT: 28fb0dc069 Added a function for resizing internal arrays without copying each individual element REVERT: d0f2febad1 Implemented asBC_PshGPtr REVERT: 99bda6944e - Added a SUSPEND in each function, even if asEP_BUILD_WITHOUT_LINE_CUES is set - Rearranged bytecode for for loop to avoid JMP instruction - Added JLowZ and JLowNZ to replace ClrHi + JZ and ClrHi + JNZ REVERT: 3bb9817dc6 Fixed bug in asCScriptFunction REVERT: 00c637dbeb - Added isEmpty to string add-on - Fixed crash when compiling constructor and base class doesn't have default constructor REVERT: 795ac999eb Changed the performance test app to measure the CPU time instead of the system time, to get less interference from other processes running in parallel. REVERT: 9f86ea5162 - Added RefCpyV - additional bytecode optimizations - changed config to enable multithreading on Mac OS X 64bit REVERT: 6c5b3f5533 Removed unnecessary ADDREF to object pointer in some class methods REVERT: 0645332b1e Renamed POP to PopPtr REVERT: 2c96f34e51 - Changed RDSPtr to check for null-pointer - Removing CHKREF before RDSPtr REVERT: 9752258ceb Changed ADDSi to check for null pointer Optimize away CHKREF when used together with ADDSi REVERT: c0ea1a0880 Added Reserve() to the script array add-on REVERT: a23665c085 Missing CScriptArray::IsEmpty() implementation REVERT: 197f4991a7 Added a few utility methods for dictionary and array add-ons REVERT: cbf43adc7c Preparing the performance test for new optimizations REVERT: cce6ae7201 Added proper support for const overloads in property accessors REVERT: a36d373deb - fixed bug in asCReader::CalculateStackNeeded - changed the way the statistics is gathered so it can now be turned on all the time with AS_DEBUG, i.e. no need for AS_DEBUG_STATS REVERT: 263006481d Releasing 2.23.0 REVERT: be94d53c59 Fixed improper cast on 64bit platforms REVERT: 13fccd482b Fixed problem with saving bytecode when a function was calling a function pointer from a class member REVERT: 3299ca867b Updated the autowrappers to include wrappers for class constructors and destructors as well REVERT: 51a84548e7 Documentation REVERT: 18c088ba80 Documentation REVERT: dffad75bd7 Documentation REVERT: fdb0e96256 Documentation REVERT: 35e2b55258 Documentation REVERT: f1d846bdce Changed the stats to collect data over the entire execution of the application REVERT: 13893ce8e4 Documentation REVERT: ae2374d4db Documentation REVERT: d79cbc9e4d Making the samples compatible with the new interface REVERT: 116f0ef28f Fixed crash on Mac OS X 32bit with GCC 4.2 when compiling the library with optimizations REVERT: 2e9f5db864 Fixed the adjustment of GET instructions so it only comes after the CallPtr instruction has had it variable offset updated REVERT: baa978fe61 offsets in the GETOBJ, GETREF, and GETOBJREF are now stored in a platform independent way REVERT: d678e08c82 Fixed Find() for arrays of handles REVERT: cb1d600654 Added test for function pointers in saved bytecode. REVERT: 5c432681de The information on local variables is now saved with the bytecode REVERT: 2f71fe24c7 Fixed the script arrays so it can accepts opEquals and opCmp that take the other value by handle REVERT: 5caec55e61 Fixed script arrays with enums REVERT: 7032cc6b71 Fixing a bug in the compilation of factory stubs when the constructor takes enums in the arguments REVERT: 203542844d Testing a reported bug REVERT: a998d7c492 POP is now also stored in a platform independent way REVERT: cb691c0ef4 The RET instruction is now also stored in a platform independent way REVERT: 0938ed4dfb - Fixed warnings and a bug in CReader - Added checksum verification for the saved bytecode in the tests to better validate platform independence REVERT: fbc88101c9 The stackNeeded member is no longer saved with the bytecode REVERT: 9d80a472fe The stackNeeded member is now calculated after loading the bytecode REVERT: 219bd01a8a - Added opEquals to ScriptArray add-on - Added getKeys to ScriptDictionary add-on REVERT: 94172b6513 Reduced the size of the saved bytecode a bit REVERT: b4ca0a5838 Encoded 64bit values in the bytecode too REVERT: 984bcb7242 Fixed a bug in CWriter REVERT: 6e7f470afc Working on the saved bytecode adjustments REVERT: 5cf5749915 Working on the saved bytecode adjustments REVERT: 713914d255 Changed bytecode in global variable initialization functions to permit them to be stored in a platform independent way REVERT: 62fddf275f Changed the bytecode for script class factories so it can be stored in a platform independent way REVERT: a66400fe0b The GET instructions are now also adjusted to be platform independent. REVERT: 03d0c64b17 Working on the saved bytecode adjustments REVERT: d1293c3add Added test with byte-for-byte validation on the saved bytecode REVERT: a497cb190a Added configuration flag AS_DEBUG_STATS to output bytecode statistics REVERT: a5e603875e Offsets to function parameters are now stored in a platform independent way REVERT: 3488695209 The program position for line numbers and variables is now stored in a platform independent way REVERT: 8ec28b2f5b The length of the function bytecode is now stored in a platform independent way REVERT: 7c529bc8a3 Fixed bug on 64bit REVERT: 5296dadb93 Planning further code changes for platform independence in the bytecode REVERT: 8eea4d79d4 The saved byte code now has offsets to local variables that are platform independent. REVERT: 94e87089b8 The jump offsets in the bytecode is now stored in a platform independent way when saved to file REVERT: cbf69366e6 More planning REVERT: 0b8421a2d8 Fixing the generator too REVERT: 696f96f3f4 Fixing the new autowrappers on gnuc REVERT: 725ba72db5 Planning for platform independent bytecode REVERT: 0cc3342304 Implemented new autowrappers REVERT: f1b58674ac Fixed use of wrong enum constant REVERT: da0e87bfa7 Minor improvements to add-ons REVERT: 77658cfa4b Enums can now be shared across modules too REVERT: dbfa720386 Further reduced the size of the parser when the compiler is excluded from the engine REVERT: 094c9b151a Implemented a memory pool for string literals REVERT: 65bad37fdf Removed the C lib as standard add-on REVERT: a12c8af922 The condition operator didn't accept when the two results differed in type with the only difference being const REVERT: 560d156b14 Updated asbuild to support access masks and namespaces REVERT: 273cdb2b33 Added includeNamespace to asIScriptModule::GetGlobalVarDeclaration(), and asIScriptEngine::GetTypeDeclaration() REVERT: 7ce90d7396 The string factory can now be registered to return a reference to the string object REVERT: f9c80abfae - Added namespace argument to GetGlobalPropertyByIndex(), GetEnumByIndex(), GetTypedefByIndex(), and GetGlobalVar() - Updated CSerializer to support namespaces REVERT: ee73fa93e9 - Fixed last compiler warning related to use of long long - Fixed compilation error in CScriptBuilder on XBox360 due to missing getcwd() REVERT: 9aff0ac40c Fixed problem with uintptr_t not being available on MSVC6 REVERT: a8dafa679e Cleaned up the code REVERT: 945ba44f4d - Fixed problem with global variables and asOBJ_NOCOUNT - Fixed problem with objects passed by value on systems where these objects are implicitly passed by reference REVERT: 393c8919e6 Fixed compiler warnings on gnuc 64bit with asFUNCTION(0) REVERT: 3da4a0641e Substituting size_t when used to hold a pointer for asPWORD which is typedefed as uintptr_t. REVERT: e0b10b4b4a Fixed a couple of errors with script classes holding members to asOBJ_NOCOUNT objects. REVERT: ceb27c96da Added GetNamespace to asIScriptFunction and asIObjectType REVERT: 35fb3128d9 - Added asIScriptModule::RemoveFunction() that takes a pointer to asIScriptFunction - Added asIScriptModule::GetObjectTypeByName() - Added IsFinal(), IsOverride(), IsShared() to asIScriptFunction REVERT: e44782db31 Added interface to allow retrieving the access mask for the registered entities REVERT: 1dfa50d2c0 Added object type flag asOBJ_NOCOUNT REVERT: 3f3dfb1470 Fixed compiler warnings. REVERT: b6152199d8 Fixed compiler warnings. REVERT: 265c632cc1 Fixed compiler error on 64bit Linux due to missing uintptr_t. REVERT: 6802c1f32b Fixed compiler warnings. REVERT: 288faf44f6 Fixed compiler warnings REVERT: a717404908 stdcall is not used for Android on arm CPUs. REVERT: eb8cf859e6 Fixed compiler warnings REVERT: ff8394d044 Renamed as_callfunc_arm_xcode.s to as_callfunc_arm_xcode.S to fix compilation problem with scons on Mac REVERT: 01ec19f342 Renaming to .S to fix compile problem with scons on Mac REVERT: 46ed1cd3e4 Fixed some compiler warnings REVERT: a877c2f63a Fixed the add-ons to work on Marmalade too. REVERT: 0155c4b40c Added asIScriptModule::SetDefaultNamespace REVERT: 3a55be828c Added configuration for Marmalade with MSVC REVERT: 84a4a8f1d1 Changed NotifyGarbageCollectorOfNewObject to take asIObjectType instead of type id REVERT: 0f94176711 GetExceptionFunction now returns an asIScriptFunction* REVERT: 93e3933ca1 Added GetGlobalPropertyIndexByName and GetGlobalPropertyIndexByDecl REVERT: bd1c0d14c8 Removed old deprecated code REVERT: 3ac41d0cf6 Working on namespace for application interface REVERT: e96721f856 Added method asIScriptEngine::SetDefaultNamespace REVERT: dbf7012f90 Improved a compiler message REVERT: 5073a68705 - Updated gnuc makefile for iOS 5 SDK - Updated xcode project for iOS 5 SDK REVERT: 574af1b7fb Added asIScriptContext::GetSystemFunction() REVERT: 8528da9d0f The compiler will no longer share interface type ids unless the interfaces are explicitly marked as shared. Previous behaviour is still temporarily available with AS_DEPRECATED REVERT: 617ce74b7f AS_NO_COMPILER removes all code related to script compilation REVERT: 6519d42956 Fixed bug in as_callfunc_x64_gcc.cpp affecting Mac OSX x64 REVERT: 497fd833e4 As much as possible is removed from asCParser when AS_NO_COMPILER is defined REVERT: 47d22e8aab The entire asCCompiler class is now removed with AS_NO_COMPILER REVERT: eb97ac1946 Document fix REVERT: 773815de79 Releasing version 2.22.2 REVERT: 91eac79204 Fixed problem with releasing engine while a script function is kept alive by application REVERT: 05bc10df53 Planning for version 2.23.0 REVERT: 6bb9683a49 Code cleanup REVERT: 4e498223ee Documentation REVERT: 4d7c6bc687 valgrind has documented inaccuracies with operations on double REVERT: 644dba401a valgrind seems to have trouble with division of doubles REVERT: 333eb4653a Fixing a problem detected by valgrind REVERT: c405f3ef8f It's now Working on the support for namespaces. Saving and loading bytecode with namespaces is now working too REVERT: f1ee0b4888 Working on the support for namespaces REVERT: 84afaae60b Working on the support for namespaces REVERT: 7fd29b0918 - Working on the support for namespaces - Exchanged strtod() for my own implementation REVERT: 8495bf3860 Working on the support for namespaces REVERT: c340f754fe Working on the support for namespaces REVERT: 3b1dc7a853 Working on the support for namespaces REVERT: f96eb52627 Working on the support for namespaces REVERT: 9d7c514992 Working on the support for namespaces REVERT: 18006602d3 The builder is now recursively registering the entities from namespaces. REVERT: 4da8939967 Fixed bug in context in CallPtr where it wasn't prepared to call system functions REVERT: b4f9357361 Added keyword 'namespace' and parsing of the namespace block. The compiler still don't understand the namespace though. REVERT: 1a2616f970 Fixed bug in GetGlobalFunctionByDecl REVERT: caf0a7b7df More code is now removed when defining AS_NO_COMPILER REVERT: b624b1f869 CScriptBuilder now properly extract metadata for class methods and virtual properties REVERT: 6f87b83412 Made the script array more robust in out of memory situations REVERT: 4d93418c19 The pre-compiled bytecode now support shared global functions REVERT: fac7d23751 Global functions can now be marked as 'shared' too REVERT: 9f4fd8b9a6 AS_NO_COMPILER can be defined to remove some code that is only used by the script compiler. This is just a start, there is a lot more that can be removed REVERT: 73bc80e211 Fixed bug with orphaned shared classes REVERT: e81046d3f9 Updating the performance test REVERT: 429f25a606 Separated the bytecode loader and saver in two different classes REVERT: bee6220451 Confirmed the fix for the segfault with -O2 on gnuc 4.6.1 REVERT: 2b84b54d3b Added push %ebx REVERT: e9e7a81dd9 Missed a % REVERT: 84ef3c7136 Another attempt to fix the problem with gnuc on 4.6.1. REVERT: 374edf9662 Attempt to fix the problem with gnuc 4.6.1 REVERT: f4b0f3ba66 Didn't work REVERT: f303008068 Attempting to fix problem on gnuc 4.6.1 REVERT: 9e12cab997 Fixed a minor problem where script section name wasn't loaded properly if it was blank REVERT: 3de382fe46 Fixed bug in compiler with regards to doing value assignment of class members REVERT: 3f08b8507c Code cleanup REVERT: b26b92d0dd - Added new bytecode instructions for working with pointers - Fixed bug where RegisterGlobalProperty with null pointer wasn't detected REVERT: 04b2248420 Attempt to fix the problem optimised code on latest version of gnuc. REVERT: c3c66d23bc Attempt to fix the problem optimised code on latest version of gnuc. REVERT: 279db0e809 Fixed bug where classes that contained shared classes as members would fail in the second module that declared the shared class REVERT: f0caa7786f - Fixed bug with interfaces and templates - Fixed bug with shared code and templates REVERT: 2edfc75ad8 Fixed compiler warnings in MSVC9 REVERT: eccb18f91a Releasing version 2.22.1 REVERT: b62ce3214e Documentation REVERT: 4f1e868b37 Documentation REVERT: 9cfc8396ad Documentation REVERT: 6516e823f6 Documentation REVERT: 0f25c7fed0 Fixed error in documentation REVERT: 3cbf3d548e Fixed problem where the compiler wasn't detecting that a class property didn't have a default constructor REVERT: eb163d9488 Fixed the #include path REVERT: f59ac57b21 - Fixed bug in CScriptBuilder related to metadata for class properties - Renamed test_metadata.cpp to test_addon_scriptbuilder.cpp REVERT: dc7ccb9352 Fixed memory leak when implicitly converting to ASHANDLE that will be sent by reference to a function REVERT: c3322ddcf7 Cleaned up the code a bit now that ASHANDLE is never marked as handle REVERT: e85b4110a0 Cleaned up the code a bit now that ASHANDLE is never marked as handle REVERT: a4c64c8539 - The ASHANDLE type can be declared with or without @ - The game sample uses the CScriptHandle to pass data between game objects REVERT: a522c11f46 Fixed bug in compiler when passing ASHANDLE type by value to function REVERT: 8251b9690c Added implicit conversion to ASHANDLE types REVERT: 89a4ed3016 Fixed problem with script array accepting script classes without default constructor REVERT: 53cfca0564 Fixed bug with GetTypeIdByDecl REVERT: 1ac2774223 Cleaning up the code a bit REVERT: 518a53809f Added support for passing objects by value on 64bit gnuc when used with asOBJ_APP_CLASS_ALLINTS or asOBJ_APP_CLASS_ALLFLOATS REVERT: e3b85e23a4 Corrected the expected output REVERT: dcc464f90d Fixed compile error on 64bit gnuc REVERT: af528360b5 Fixed crash in native calling conventions on 64bit Mac OS X REVERT: 78307b3619 Removed the CGameObjLink object and registered CGameObj directly with the engine REVERT: 2a6b3772e4 Providing more verbose error messages when application does something wrong during the interface registration REVERT: 96755c0b7d More #includes were missing REVERT: 4cc052599f Fixed compiler error due to missing #include on gnuc REVERT: 6215da65f1 - Adding some functions to the script std string add-on - compiler won't warn when passing 0 to output parameter, this is the signal to ignore the returned value REVERT: 5fa1e05e6d Minor change to fix a potential issue. REVERT: 0ae118b3bf Avoid creating temporary copies when calling opAssign or copy constructor REVERT: a5a45c556b Improved error message when it is not possible to create temporary copy of an object REVERT: 5c1be405de - Fixed the saving of precompiled bytecode when there is no default constructor in the script classes - Turned off default constructors by default REVERT: 0b6fd5a05e Default constructor and opAssign is no longer automatically implemented for script classes that have a non-default constructor. REVERT: 81df55b031 Implemented formatFloat REVERT: 49193c79d1 Fixed bug in the asCTokenizer::IsKeyWord REVERT: 08ebd77556 Optimized the tokenizer REVERT: 147904bf37 Fixed missing #includes on gnuc REVERT: 7f412f58d2 Implemented formatInt as string util add-on REVERT: a7dc6379c3 Fixed compiler warnings in scriptfile.cpp REVERT: 66ad541c93 Improved compiler performance when scripts have a lot of literal string contants REVERT: 3533e55a38 Moved as_scriptmath3d.cpp from add_on to test_feature REVERT: ed9958193d Fixed bug in CScriptBuilder when turning off metadata REVERT: 49cfa9f17e Fixed bug in compiler where a temporary was improperly reused under certain circumstances REVERT: f78f9e6a89 Added a test case for reproducing a reported bug REVERT: c1cc6928ef Fixed the gnuc and mingw makefiles for test_feature REVERT: 183ffb277d It's now possible to disable the alternative property accessors with the engine property asEP_PROPERTY_ACCESSOR_MODE REVERT: f952fa06ed Implemented the alternative syntax for declaring virtual properties: int prop { get; set; } REVERT: d502d432ca Changed the tokens 'final' and 'override' to not be reserved keywords REVERT: 5769f91a36 Implemented the complex number add-on that will substitute the vector3 add-on as the value type reference. REVERT: ff55afa58e Fixed assert failure on compilation error REVERT: 637a9e7d70 - Added tests for the final and override keywords - Fixed a few problems with the final and override keywords REVERT: 3c8be0b0f8 Added 'final' and 'override' keywords to the script language for better control over inheritance REVERT: da3946d8b6 - Added property accessors for length on CScriptArray - Added GetMetadataStringForTypeMethod on CScriptBuilder REVERT: a14776e439 Fixed bug in compiler REVERT: 2a155b0c23 Implemented a test case that reproduces a bug in the compiler REVERT: c982ef4b6f Fixed bug with @&inout and unsafe refernences REVERT: 90fdb7248c Made the logo transparent REVERT: 798d5bc8ef Releasing 2.22.0 REVERT: 86021c0564 Documentation REVERT: 196d5cf91e Documentation REVERT: a507f759f1 Documentation REVERT: ea5a87451d Documented the asOFFSET macro REVERT: 9577bdbed1 Created the macro asOFFSET REVERT: 8ca70ff74d - Fixed problem with shared classes not being able to create other shared classes due to factory not being shared - Fixed crash with imported global property accessors REVERT: bde9be0254 Fixed a problem where an implicit value cast wouldn't be used in an assignment operator. REVERT: 63ba76a481 Improved the error message when there is no copy operator available. REVERT: f11e6070ed Fixed compile error in test_features REVERT: 8144f785e9 Improved the description of script classes in the language section of the manual. REVERT: fa87324342 - Upgraded to Doxygen 1.7.5.1 - Documented the use of function pointers instead of function ids - Minor corrections and improvements to the documentation REVERT: bb774fbf63 Fixed bug with value cast operator that returned an object by value REVERT: 66206f7ebd Reorganized the script language documentation for script classes REVERT: ec179e8ff3 Documented the shared script entities feature REVERT: 8dc917193b Documented the JIT compilation changes REVERT: 6f409fa7e4 Fixed null pointer exception in compiler REVERT: 17d77dbe7d Updated the interface documentation REVERT: 8ead90212e - Added some new methods to the public interface - Updated the samples with the new public interface REVERT: 8c85d3c9e5 - Improved the game sample to take advantage of the shared classes for messaging - Improved the game sample to provide better error handling for script errors REVERT: 1029e6c3db Made some improvements for JIT compilers REVERT: 01806d5424 Code cleanup and optimizations REVERT: 22d6e1fa00 Code cleanup and optimizations REVERT: 13fae921f0 Minor code cleanups and updated the change log REVERT: f3cc59eaad Fixed alignment and stack cleanup in the 64bit GNUC native calling convention REVERT: 4712cebd64 Fixed problem with returning 128bit pod with floats when compiling on Linux 64bit with optimizations REVERT: ba159363c5 Added a verification in the game sample to make sure the game is executed with the correct working directory, otherwise it would just run without any scripts. REVERT: 09cd08c346 Fixed bug where default args for registered functions were not recognized REVERT: 1a7d7870da Completed the implementation for shared classes REVERT: d717fd384f Fixed bug in asCModule::GetFunctionByDecl REVERT: b640a1a2ff Working on the shared objects. REVERT: c9f2c18e89 Working on the shared objects. REVERT: 827d5dc548 Fixed bug with indexed property accessor REVERT: 021b763792 - Implemented the shared class feature - Fixed bug in CSerializer add-on REVERT: 9757d5c5f6 Planning for the 'shared' feature REVERT: 9015956ee3 Added asEP_DISALLOW_GLOBAL_VARS REVERT: 64ba21dd78 Improved GC to not crash in case the engine already forcibly released the object type methods, which can happen if the application registered types that can form circular references with script objects but didn't register the GC behaviours. REVERT: c504eaa236 Updated codeblocks project REVERT: 6defe178ef Fixed bug in compiler where temporary variables were reused inappropriately while evaluating function arguments. REVERT: b56a2d8057 Fixed bug in GetFunctionByName REVERT: 9e49ba5646 A module's access to registered entity is now controlled through binary access masks that can be defined individually for each entity REVERT: 4d76864ef3 - Added GetGlobalFunctionByIndex and Decl to asIScriptEngine - Deprecated GetFunctionDescriptorById in asIScriptEngine and asIScriptModule and replaced it with asIScriptEngine::GetFunctionById - Added GetFunctionByName and Decl to asIScriptModule - Deprecated asIScriptModule::GetFunctionDescriptorByIndex and replaced it with GetFunctionByIndex - Deprecated asIScriptGeneric::GetFunctionDescriptor and replaced it with GetFunction - Added GetFactoryByIndex and Decl to asIObjectType - Added GetMethodByName and Decl to asIObjectType - Deprecated asIObjectType::GetMethodDescriptorByIndex and replaced it with GetMethodByIndex REVERT: 1b32cb0810 Planning for the new access mask functionality REVERT: f3ad6c5302 Added user data to asIScriptModule REVERT: 1552868fc5 Improved the game sample to take advantage of the object type user data REVERT: a1f0af8d57 - Added user data to asIObjectType - Added Prepare(asIScriptFunction *) to asIScriptContext REVERT: 8dc3c44684 Releasing 2.21.2 REVERT: 5c98d35580 Undoing the change to disable optimizations because it caused a segmentation fault. REVERT: 99973b4c47 Disable optimization in functions that use inline assembly to avoid problems with the GCC optimizer REVERT: 77d5e04342 Documented the new ALLINTS and ALLFLOATS flags REVERT: 39f02ac61c Structs with 3 or 4 floats should now be working as well. REVERT: 14bb626af0 Added asOBJ_APP_CLASS_ALLFLOATS REVERT: 451b13400b One test failed because it registered a function that is not supported yet REVERT: c7531e7bd1 Re-included the tests that should work with asOBJ_APP_CLASS_ALLINTS REVERT: 97c30dd3d2 Added the flag asOBJ_APP_CLASS_ALLINTS REVERT: 09393cd057 All levels of optimizations cause segfault on Linux 64bit REVERT: d546cdf3d0 O1 also caused segfault on Linux 64bit. Trying O. REVERT: 2573aa9def O2 also caused segfault on Linux 64bit. Trying O1. REVERT: 85f020c5da O3 caused a segmentation fault for some reason. Trying O2 instead. REVERT: 94ee2a5524 Added optimization -O3 to gnuc makefile to validate that this works REVERT: 29b9be0919 Fixed a test case for Linux 64bit REVERT: 1e4f05b6c0 Fixed a test case for Linux 64bit REVERT: ddd703ebb0 Fixed a test case for Linux 64bit REVERT: 530d8364a2 Fixed a test case for Linux 64bit REVERT: 8693967154 Fixed a test case for Linux 64bit REVERT: 398e33bd65 - Possible fix for problem with floats and doubles not being returned correctly on gcc 64bit with optimizations (Linux, Max). - Disabled some tests that are not supported on Linux 64bit REVERT: ad68190900 Disabled some tests that are not supported on 64bit Linux REVERT: a667c01bfe Compiler error on Linux 64bit. REVERT: 2ac5c6b01e The library is no longer allowing the return by value of simple types on Linux 64bit, as it is not possible to predict which registers will be used. REVERT: 99e7a39e1d Fixed compiler warning in script builder REVERT: 53c2cda395 The tests were incorrect on 64bit Linux, because a long is really a 64bit type. REVERT: d7270de8c8 Added test for returning a struct with an array of 3 floats. REVERT: abe94ffb3f Fixed the new code in the script builder to support metadata for class members. REVERT: a287988b9f Documentation REVERT: 16a7f95b41 Documented the sample game REVERT: ae635a6a68 Created a sample game that shows one way of integrating the script engine for game control REVERT: 18a9a3c20e Added support for metadata on class properties REVERT: 7096419777 Completed the changes to return by value on the stack rather than on the heap. REVERT: 2f82f2d764 Working on the changes to return by value on the stack rather than on the heap. REVERT: 0c0ab9a7ef Working on the changes to return by value on the stack rather than on the heap. REVERT: faaf3f8bb7 Working on the changes to return by value on the stack rather than on the heap. REVERT: b61c86e7ca WoWorking on the changes to return by value on the stack rather than on the heap. REVERT: 45bc3a577d Working on the changes to return by value on the stack rather than on the heap. REVERT: bed1563825 Code fix for CLang compiler REVERT: 3ad1def2a2 Fixed bug with function overloading and default args REVERT: 43a5efdcef Testing MinGW with full optimizations. REVERT: 4b3f7165c6 Fixed bug with property accessors and &inout parameters REVERT: 0eb364e2ea documentation REVERT: 0e1842221e - Documenting the CSerializer add-on - Releasing 2.21.1 REVERT: bf7d6a1398 Added the CSerializer add-on REVERT: 99ca19bb13 Added support for native calling conventions on Win64 with MinGW64 REVERT: 6643bf7ef2 Fixed bug with handle assignment and set_opIndex REVERT: a354f26155 - Updated the clib add-on to the latest interface - Minor tweaks REVERT: 08565d824f Testing REVERT: 107f4fdb16 - Updated code::blocks project files - Fixed bug in debugger add-on - Fixed compiler warning in as_compiler.cpp REVERT: 29e889fcdb Documentation REVERT: 1c86e279c8 Documentation REVERT: f0f0890915 Renamed the type name used to register the generic handle add-on as. REVERT: 58f9f52e58 Fixed bug with instanciating templates where the subtype has the same name as the template subtype. REVERT: 6f0031bd74 Fixed bug with ternary condition operator REVERT: b883ba7f32 Fixed the library gnuc makefile REVERT: 152af33d86 The CScriptHandle add-on is now working REVERT: b3a38dc08f The ASHANDLE type is properly working when returning a reference to it from a function REVERT: 3412611d0b - ASHANDLE now works with global variables too - Started implementation of the standard ASHANDLE add-on REVERT: d6d0d95ebe Fixed bug in compiler when passing null to output parameter REVERT: 426a0704ad - ASHANDLE types must now be declared as handles in variables, parameters, etc - ASHANDLE types no longer accept value assignments REVERT: b3dbd6b8fd - Removed unnecessary deallocation of stack memory in Unprepare() - fixed bug in std::string add-on REVERT: 435286a18e Implemented asBEHAVE_REF_CAST with signature 'void f(?&out)' for the ASHANDLE type. REVERT: ae0bd8a51b Added 64bit target to the MSVC10 project files REVERT: 5dd25c7804 Don't warn for loss of precision when passing a double constant to a float arg REVERT: db46c8fb5a Removed warning in compiler when passing null to an output handle argument REVERT: e632649088 Working on the ASHANDLE type REVERT: 9bbfda422a Added flag asOBJ_ASHANDLE REVERT: 89051e1e6d Compiler will now give error when assigning to property of an object that is returned by value from a function REVERT: 1212343617 Updating the performance test REVERT: 381ca1c1a7 Fixed crash when doing a value assignment to a handle obtained from a property accessor REVERT: ec84021c03 Releasing 2.21.0 REVERT: e137ab3505 Documentation REVERT: 12b9758eca Fixed include scriptarray.h REVERT: 5ccd8894e5 Deleting CScriptString add-on as it has been moved to test_feature REVERT: 9808264743 Removed CScriptString as standard add-on REVERT: d196587f7f Documentation REVERT: d14fa0fa0b Added FindNextLineWithCode that a debugger can use to find a line with code to set breakpoints at REVERT: 6e1b1653d9 Improved error message in compiler when typing the wrong name for the data type in a variable declaration REVERT: 4c5324257a Implementation of interface methods can now be inherited from base class REVERT: 366ea841ab Fixed crash if context is unprepared or released after SetObject but without calling Execute REVERT: a9c4274d98 It's now possible to use property accessor of another object of the same type from within a member property accessor REVERT: 65983a9b50 Improved error message when local variable overrides global function REVERT: cb41f74fa0 Fixed native calling convention on Win64 with MSVC REVERT: 9ec8f50c29 Renamed as_callfunc_x64_msvc.asm to as_callfunc_x64_msvc_asm.asm to avoid conflict with as_callfunc_x64_msvc.cpp REVERT: 7737c94147 Fixed bug with passing value type allocated on stack to var argument REVERT: 9c11deda5c Fixed implicit conversion of negative float constant to uint REVERT: 251f395df8 Fixed bug with importedFunctions array only increasing with new builds, eventually crashing. REVERT: 65a3863a15 - Cleaned up the interface by using asUINT where the value can't be negative - Working on the debugger - GetProperty now informs if the property is a reference or not REVERT: b3ed56e790 Working on the debugger REVERT: 8e7e87594b Added support for native calling conventions on Illumos OS. REVERT: ba41abde63 Added gnuc makefile for asbuild sample REVERT: 6afd43814b The debugger will now find the name of enum values REVERT: 060b5ed829 Improved the GC REVERT: 9bd8024a50 Improving the GC REVERT: 9ffbd25f84 Updated documentation REVERT: 87270dc022 Planning for future changes REVERT: 837e42257d Automatized the garbage collection so it is done during the execution of scripts, even if they are running for long times. REVERT: 5a565f941a - Fixed pthread linkage error on gnuc - Fixed cmake configuration - Fixed asrun compilation on msvc6 - Worked on debugger REVERT: 2e727e0697 - Planning for automatizing garbage collection - Added TryEnter on the critical section object REVERT: 2383fe8983 - Cleaned up the interface a bit - Working on the debugger REVERT: 494ba36de9 Added ability to determine if a variable is within scope or not REVERT: f521fdb244 Planning to automate garbage collection REVERT: d8eaacb45f Planning to add information about variable visibility for debugger. REVERT: ab89f354d8 Fixed crash on MSVC when basic behaviour methods was implemented with multiple inheritance REVERT: 014f502e9c Cleaned up the code in the script array a bit REVERT: ca76448061 - Removed the restriction to call functions in global variable initializations - Added the possibility to debug initialization of global variables REVERT: 0fed71794a - Added ability to set deferred breakpoints at function names - Prepared the debugger class to override the standard output by putting the code that prints in a single virtual method REVERT: 14763f34a1 Added printing of variable values REVERT: ce155022d2 Implemented ability to list global variables REVERT: 13f346a160 - Fixed bug in GetCallstackSize - Added ability to list local variables, print call stack, and to abort an execution in the debugger REVERT: e8cfedec29 Added ability to list break points and to remove them REVERT: 137755bde8 Fixed the test case REVERT: 8e9364ea9e Fixed a bug in debugger when setting a break point incorrectly REVERT: 53424da0f2 Changed join to be a global function which is more natural for what it does REVERT: 6e51dc6e63 - Added ability to set break points in the debugger - Fixed bug in the join function - Added msvc6 project for the asrun sample - Added function for getting command line args in the asrun sample REVERT: c2f5cadb5f - Fixed crash in compiler when script tries to call a function that has been declared incorrectly with default arguments - Added the CDebugger add-on REVERT: 4a7bb097b8 Testing and some adjustments REVERT: 7b51ee01a9 Implemented split and join for std::string add-on REVERT: 61f0b931dd Added substr, findFirst, and findLast to the std::string registration REVERT: 56401f5b8c Created the basics of the asrun sample REVERT: a2fdfd1227 - Removed deprecated code - fixed compiler warnings REVERT: a68975b119 Fixed problem with native calling conventions on PS3 and XBox 360. REVERT: 89672f31ee - Added msvc10 project files - updated change file REVERT: 8677914058 - Fixed bug with write-only property accessors. - Added critical section around the creation of the global threadmanager. REVERT: 9142ec03dd Some fixes detected while testing on MSVC6. REVERT: 16c3bd1c96 Validating property name conflicts against methods REVERT: f5c8b3a5ae Fixed compile error when attempting to assign to a member of a handle returned from another function REVERT: dca1d17725 Fixed bugs related to enums REVERT: 2e071b51ce Fixed bug with identifying shared interfaces in multiple modules REVERT: 44fdce8a79 Completed the implementation for default arguments REVERT: b38c8ea04a - Fixed default args that used variables already existent in subsequent arguments - Removed compiler warning when calling non-const method on temporary object REVERT: 717c609a1b - Fixed default args for class methods - Fixed saving/loading bytecode with default args REVERT: 0435a437fc Fixed default args for constructors/factories REVERT: 22ca1a447a Fixed bug with private method where compiler was incorrectly invoking base class constructor REVERT: 4043d2b724 The default arg string is now cleaned up for better storage. REVERT: 825e1a33ce Removed duplicate functions as they can now use default args instead REVERT: de146363ab Fixed crash when compiling invalid script REVERT: 85aefa41ff Default args no longer have access to local variables. REVERT: 1add655df9 Validating that the default values for parameters are correctly declared REVERT: 6e31cacb8d Registered functions can now also use default args. REVERT: b1cbd3993b Initial support for functions with default arguments. REVERT: 3043d549a3 Starting the support for default arguments. REVERT: 046b890001 Changing the complex mask for MinGW to include the copy constructor. REVERT: bf83c0319b Fixed bug with asEP_ALLOW_UNSAFE_REFERENCES REVERT: 8a11ff40d1 Planning for the default arg implementation REVERT: cae45ff2c4 Fix compile error on GNUC REVERT: 03d47a5e0b Fix compile error on GNUC REVERT: ceea2c1bbd Fix compile error on GNUC REVERT: b475e8f8f0 Fixed bug with native class methods on iPhone REVERT: da4027117e Properly handling loading bytecode that attempts to instanciate invalid template type. REVERT: 5030b43a81 Fixed bug in compiler when a property that takes a reference in set accessor was used in a dual operator expression REVERT: 43a4f39225 Added LoadRObjR and LoadVObjR and corresponding bytecode optimizations REVERT: ceef4b22c2 Defined the macro CLEAR_FPU_STACK to determine the use of fninit or emms to clear the stack. REVERT: 45f2f3cab3 Fixed bug in array add-on when trying to instanciate array<void> REVERT: 439c9f8d33 Added reverse and find to the script array add-on REVERT: ec40b67c69 Fixed the PS3 code when a native function returns a pointer. REVERT: e23982c888 Created a new test for get properties returning references to objects REVERT: 572c93fb29 There are now less copies done when performing an assignment operation. REVERT: ec16136555 Preparing some optimizations. REVERT: da6d0aea1a - Removed the last fninit instructions. - Removed improper assert when AS_USE_DOUBLE_AS_FLOAT is used. REVERT: db0f08d924 Updated the documentation with the new asOBJ_APP_CLASS_COPY_CONSTRUCTOR REVERT: 9d5f6d54a0 Fixed COMPLEX_MASK for 32bit Mac REVERT: 898faa5b2f Using asASSERT instead of assert REVERT: a8a1644d6d Added asOBJ_APP_CLASS_COPY_CONSTRUCTOR REVERT: cad0f7ca35 Fixed compiler warning about implicit cast from asQWORD to asUINT REVERT: 5ff73c6096 Fixed gnuc makefiles REVERT: 5be66d6411 Fixed the calling conventions on 64bit mac for older gnuc versions (4.2.1) REVERT: 9f5d38af43 Added methods sortAsc and sortDesc to script array add-on REVERT: e1aa607fb9 Fixed compiler warning on MinGW REVERT: 2edb5713d8 Releasing 2.20.2 REVERT: 5d2dac1dff Removed the compiler attribute to allow optimization REVERT: bffbe04022 Fixed the assembler syntax in the macros. REVERT: 108322c32c Added clobber list to inline assembler to avoid the optimizer mix up the registers. REVERT: b21e04088f Disabled optimization for functions that uses inline assembler in as_callfunc_x64_gcc to allow optimization of the rest of the library REVERT: 355fe627a9 Added support for declaring function pointers before the declaration of the types used in its parameters or return type. REVERT: 7dc9951545 Fixed bug when invoking function pointer directly from class member REVERT: f135349ad5 Added CMakeLists.txt REVERT: 4d66ea1a0e Fixed bug with unsafe references and value types REVERT: cbd6853aa1 Fixed bug in parser when parsing the index operator REVERT: e9594830de Adding test for compiling complex expressions REVERT: c521040dcc Fixed bugs with function pointers REVERT: f83bd0dfe8 Moved the CallSystemFunction into as_callfunc.cpp where it is shared between all platforms. REVERT: 81c32bc967 Unified code for CallSystemFunction for x86 and sh4 REVERT: ebc22711e1 Unified code for CallSystemFunction for x86 and mips REVERT: eb4a3a13bc Unified code for CallSystemFunction for x86 and arm REVERT: 42d379cd34 Unified code for CallSystemFunction for x86 and ppc_64 REVERT: 046a1c6668 Unified code for CallSystemFunction for x86 and x64_msvc REVERT: c4705dd8b7 Fixed some compiler warnings of unused variables REVERT: 64f79ccc16 Unified code for CallSystemFunction for x86 and x64_gcc REVERT: fdb76faabf Improved error handling on AddScriptSection REVERT: a6974f9243 Minor changes to unify the assembler code on x64_gcc REVERT: 1628c58273 Unified code for CallSystemFunction for x86 and xbox360 REVERT: c86e026dc5 Creating a new test for a possible bug on Xbox 360 REVERT: 459093ac6e Unified code for CallSystemFunction for x86 and ppc REVERT: 380c963697 Fixed code for native calling conventions on ppc REVERT: 76df607c71 Preparing to separate native code from common code in as_callfunc REVERT: d5d8f0e2c0 Preparing to separate native code from common code in as_callfunc REVERT: eafe192332 Fixed bug with compiling explicit ref cast of temporary handle that produced invalid bytecode REVERT: 8d80d4b54b Added swizzle operators xyz, yzx, zxy, zyx, yxz, and xzy to the vector3 add-on REVERT: 2cb443d2b7 Fixed a bug in the std::string add operator implementations where the input string was incorrectly modified REVERT: 7a79c63599 Value types allocated on the stack didn't work correctly with the condition operator REVERT: cc41332bb1 Value cast of an object retrieved from a get accessor wasn't working properly REVERT: b37862d805 - Cleaned up the code a bit - Added copy constructor to std::string add-on REVERT: e93dc2e65f When copying an object to remove constness the compiler wasn't handling objects allocated on the stack correctly REVERT: bf5745ca78 Set property accessor that takes the value by ref was incorrectly accepted for increment/decrement operators REVERT: 31e7302a40 Using emms instead of fninit to preserve FPU configuration on x86 REVERT: 3ce6ffdb5e Added configurations for Cygwin and Linux/ARM REVERT: e0dd95d812 Fixed the gnuc makefile for the console sample REVERT: 5f3de443a6 Fixed bug when calling copy constructor for value types allocated on the stack REVERT: 8f3a1f5398 Turning off the allocation of value types on the stack until the detected bugs can be fixed. REVERT: ff73004950 Corrected unsigned integer division and modulo when most significant bit is set. REVERT: 6c6dd93c38 Corrected integer division and modulo when most significant bit is set. Still need to correct unsigned division and modulo. REVERT: 1366fd9c7e Releasing 2.20.1 REVERT: 2527eef69b Missing test REVERT: a4be2c3f63 Fixed bug in 32bit ppc calling convention when passing value type by value REVERT: ba1b1e4021 Fixed makefile REVERT: 9479243d07 Testing the performance with and without allocating value types on the stack. REVERT: 5fcd7df5ac Adding automatic calls to garbage collector REVERT: f6c61f71a0 Completed the code to adjust bytecode according to the size of value types on the target platform. REVERT: 3ad44a62cd Working on the adjustment of pre-compiled bytecode when the value type has a different size than originally compiled for. REVERT: 47f4f7ed47 Saving the size of the value types with the pre-compiled bytecode so it can be validated upon restore REVERT: 260f6b0eaf Fixed a problem during clean up of configuration groups in the engine destructor REVERT: f482f3ab11 A little cleanup REVERT: f2d13dbd3d GetAddressOfVar now returns null if the value object is not initialized yet. REVERT: 7f42c31e27 Saving/loading the object variable info for the exception handler REVERT: 22ed96124c Fixed bug with inspecting the callstack REVERT: 48a24cf364 Fixed memory invasion with value types on 64bit platforms REVERT: dd82c22a92 Fixed a problem with returning values when there are value types on the stack. REVERT: 0ebd8f3e4a Fixed a test on gnuc REVERT: 04aa73b4af Completed the allocation of value types on the stack REVERT: 2c055db3aa Working on the allocation of value type on the stack REVERT: 685c444ed9 RegisterObjectType now returns the type id of the registered type REVERT: 4dc11dd8a9 Working on the allocation of value type on the stack REVERT: e0027f84da Working on the allocation of value type on the stack REVERT: 3012bd9a60 Working on the allocation of value type on the stack REVERT: a98b200ec9 Working on the allocation of value type on the stack REVERT: ac1cdc7d82 Working on the allocation of value type on the stack REVERT: b5ae6500a2 Preparing for the implementation of allocation of value types on the stack. REVERT: ba2cdf529d Added methods for reading/writing binary files to CScriptFile add-on. REVERT: 37edf4993c Improving the tests with better error messages for the buildbots REVERT: c340713305 Minor improvements to add-ons REVERT: 9401d3efd8 Releasing 2.20.0 REVERT: ff5a8a8fcf Writing the article on concurrent scripts REVERT: 123ab5f15e Fixed bug on Android with asEFuncType and asFUNC_DUMMY REVERT: 99b38d52c1 Adjusted the methods for debug information in the asIScriptContext REVERT: 9e98d21a73 Documented the indexed property accessors REVERT: c6c78dc2b3 Property accessors can now accept an index argument to emulate arrays REVERT: c2a88ed400 Added PrintException as a standard add-on REVERT: 4720dfb307 - Fixed crash if script class destructor accessed global variables that had already been deleted. - Improved tests with better error messages for the buildbot. REVERT: f15d5bfb93 Fixed the preprocessor error REVERT: 5bd66c6949 Fixed configuration for Linux and non-x86 based processors. REVERT: 27779f2053 Changes to allow cross-compiling with GNUC REVERT: 65090edc0a Added support for get_opIndex and set_opIndex. REVERT: 23bb9df433 Configuration for more BSD systems. REVERT: 0f4d90ee6f Documented the new need to register the dynamic array type. REVERT: cd42c713b7 __attribute__ ((init_priority (30000) )) doesn't work for non-class types. REVERT: f46121ed4f Fixed compile error on GNUC REVERT: cb5afde4c5 Fixed initialization order of globals REVERT: 4bce77c849 Fixed memory access after delete REVERT: 75717000b9 Fixing some uninitialized variables REVERT: 1d1ce72623 Fixed more compiler warnings in test project REVERT: 443d0ab32e Improving the tests for the build bot. REVERT: 73caf25241 Removed compiler warnings REVERT: 0b2d64c93f Removed compiler warnings on gnuc REVERT: 1ce2a7a43b Added ability to set callback functions for cleaning up user data when the objects are destroyed. REVERT: 02ac3a2b34 Corrected change list REVERT: 07d8c223da Improved compiler error message when trying to declare variable in switch case REVERT: ffcd13fd94 Fixed compiler warnings. REVERT: 776fb2b8aa Some minor changes to automatize the tests with buildbot. REVERT: 0333752587 Fixed bug in parser for functions returning handle to template types. REVERT: d4699b6323 Added #include <stdio.h> to compile on Linux REVERT: 25faeb7a2b - Added GetProperty and GetPropertyDeclaration to asIObjectType - Deprecated GetPropertyName, GetPropertyTypeId, IsPropertyPrivate, and GetPropertyOffset in asIObjectType REVERT: e0b733b04f - Added GetGlobalVar to asIScriptModule - Deprecated GetGlobalVarName and GetGlobalVarTypeId in asIScriptModule REVERT: 71470cd74e Updated change list REVERT: 8fcaab2ad5 Added the return of the script section name to the methods that previously returned on the line number and column. REVERT: 1b5451b8db Improvements to the auto wrapper to support the asCDECL_OBJLAST and asCDECL_OBJFIRST calling conventions. REVERT: d134d07dbf - Added methods to asIScriptFunction to enumerate local variables - Deprecated IsClassMethod and IsInterfaceMethod, use the new GetFuncType instead - Added a parameter to the GetMethod methods to allow retrieving the real method instead of the virtual method REVERT: c2c70c7d5b Added support for native calling conventions on PS3 with SNC compiler. REVERT: 86f490f2db Test calling script class constructor with argument. REVERT: 0231b7ef56 Improvements to gnuc makefile REVERT: 66bbb33307 - Added support for attaching user data to a registered function. - Fixed compiler warnings in aswrappedcall.h. REVERT: b25d4553da Removed the deprecated ExecuteString REVERT: 221f37de05 Improved compatibility in add-ons with different versions of MSVC REVERT: ffd55905b6 Implemented InsertAt, InsertLast, RemoveAt, and RemoveLast for the array add-on REVERT: c0739ee54b Improving GNUC makefile to allow defining the compiler from environment variable. REVERT: c9cf1244d1 Added support for templates and default array type to asbuild REVERT: f604ebb51f Improving the manual REVERT: 10522e2c59 Removed the built-in array type REVERT: c1f93d89eb Improved MinGW makefile to allow defining compiler and linker commands from environment variables. REVERT: 781066eb4b Added methods to query whether a class member is private or not. REVERT: e5cd492756 Improved const correctness of interface methods REVERT: 5c1ca553ee Added opPreInc, opPreDec, opPostInc, and opPostDec REVERT: 9c174dfd7d Deprecated asBEHAVE_INDEX REVERT: c682a853fc Releasing 2.19.2 REVERT: da4295c417 Implemented WriteConfigToFile REVERT: 601c9d0f15 Enum types prioritizes int when matching functions REVERT: 172c954bb0 Fixed assert failure on unreleased temporary variables with return statement. REVERT: 280e2889e0 Fixed implicit conversion from enum to double. REVERT: e755087ce1 Documented the asbuild sample REVERT: e14f55c49d The size of script classes and the property offsets are now determined dynamically while loading bytecode instead of reading it from the file itself. REVERT: f25edd9641 Working on the offline compiler REVERT: 7058c705bb Starting to implement a generic offline compiler REVERT: 654f7453e9 Float numbers can now be written without the leading 0 REVERT: 1c22acb56c Fixed problem with comparison of value returned by reference from property accessor. REVERT: d11fe28970 Fixed bug with loading bytecode with shared interfaces REVERT: 1edb75de7c Fixed bug in restoring bytecode where some script arrays weren't flagged as garbage collected. REVERT: c01e549193 Added configurations for native calling conventions on Haiku REVERT: ff175e1601 Fixed bug in array object that prevented GC from breaking circular references. REVERT: 76fc76f072 Improving bytecode debug output with print out of variable declarations. REVERT: c157b2453e Changed the index behaviours to opIndex methods for the string add-ons REVERT: 8249f3f3e8 Documenting how a script class can be passed to an application function. REVERT: 1bf5eec5a2 Added instruction PshV8. REVERT: 79863cb20e Added FreeBSD x64 configurations for native calling conventions REVERT: 923e6f590a Minor changes REVERT: dc1842ab6d Detecting class methods with virtual inheritance again REVERT: 58b5f70a8c Improved compiler message REVERT: 0107760e79 It's no longer possible to register global function with const modifier. REVERT: 11563dcb87 Improved validations of the bytecode when loading it to avoid crashes REVERT: 91d30dff8a Documenting private class members REVERT: 0676f1ad6a Class methods can now be declared as private REVERT: e8a186b456 Parser now supports the private keyword in preceding class methods. REVERT: 726b03407b Fixed assert failure when compiling switch statement with deferred parameters. REVERT: c6966870d2 Added conversion of bool to string to the string add-ons REVERT: 3d662a6239 - Get accessor can now return handle, while set accessor takes value or reference. - Made addref/release methods on add-ons const REVERT: 6119c420b1 Skipping test cases that are not compatible with MAX_PORTABILITY REVERT: 3d188d356e Adding support for returning 'this' pointer REVERT: 60ef9178dd Fixed crash on empty heredoc strings REVERT: 488e8528c4 Minor compatibility issue with MSVC++ 7.0 REVERT: 447d6bd304 Improved the messages when failing to initialize global variables. REVERT: 0ba2755cd4 Releasing 2.19.1 REVERT: 2093b66c1c Updated some of documentation REVERT: 5bfe3017a7 Fixed bug in compiler with switch cases and non-local variables. REVERT: f83a700ec4 Fixed error where temporary variable was overwritten by deferred parameters. REVERT: dcbf4ee17c Fixed assert failure with registered function definitions REVERT: 267f13969f Fixed bug when copying script class with handle member on 64bit processors. REVERT: 7bebe3fbcf Removed unnecessary temporary copy when using default copy behaviour. REVERT: 6c0c05531f Added compatibility with Mac OS X for X64 CPUs. REVERT: fb55f2c817 Fixed compiler error when AS_DOUBLEBYTE_CHARSET is defined. REVERT: 2400f634cc Fixed asIScriptModule::GetFunctionIdByIndex REVERT: 5197a5b10f Added support for declaring private class members REVERT: cec3ab114c Implemented the opAssign method for the dictionary add-on. REVERT: 40a3a488aa Fixed bug with conversion from reference to primitive REVERT: fd8b34bea4 Fixed changelist HTML error REVERT: 04f907b664 Storing the section names with the saved bytecode REVERT: b7288d7c69 - The saved bytecode is now independent of object property offsets - Added the instruction LoadThisR to optimize the access to class members REVERT: a9be290c42 Preparing for the deprecation of asBEHAVE_INDEX REVERT: dd56d30628 It is no longer possible to declare a class method with the name of the class REVERT: dfacfff624 Allowing 'void' parameter lists REVERT: 8829ce53bb Some fixes for GNUC REVERT: 59f3d5a78b Added support for the opIndex operator overload method REVERT: 1b57e53f17 Fixed crash on compiler error with duplicate declaration of variables. REVERT: 3d4cf4c229 Documented the restrictions for returning references from script functions. REVERT: 7f608ffdd6 Completed the support for returning references. REVERT: c2abcc8ef4 Worked on the support for returning references for script functions REVERT: 0bc8747cad Worked on the support for returning references for script functions REVERT: 41c4125526 Fixed error message in parser when forgetting the ; after the function definition. REVERT: e11643e762 Fixed bug with implicit conversion from 'const obj' to 'obj' REVERT: 54cafd813e Fixed memory leak on compile error when returning ref with deferred parameters REVERT: ca52e5f69e Working on returning references from script functions. REVERT: 6637c46246 Updating some project files REVERT: 98fda5a5cb Planning the necessary changes to support returning references REVERT: 154fbbd06c Cleaned up the code a bit in as_compiler.cpp REVERT: 48c330be49 BC_Cast was not saved properly in as_restore.cpp REVERT: 9c753d1f07 Added some validations to the set property accessors. REVERT: 1b1916e9cf Fixed precompiled bytecode with enums and arrays REVERT: 538408f9cd Fixed null pointer exception on a specific compiler error REVERT: 9eac203005 Releasing 2.19.0 REVERT: 7811496c0c - Added the new factory to the built-in array type as well. - Updated the documentation. REVERT: 41002bd54b Fixed bug in compiler REVERT: 8c5ec5c956 Fixed memory leak when a template type had a method that used the template subtype in the parameter list. When the template type then had a circular reference with a script class that instanciated the template, the memory leak occurred. REVERT: 3d6164e781 - Fixed the template callback for the add-on so that it doesn't fail for script classes if array template is instantiated before the class has been fully defined. - Added the generic calling convention for the new script array factory with default value. REVERT: 7d18ae35c9 Added factory to template array add-on to allow initializing elements with default value REVERT: 9399eaf8d9 - Fixed assert failure on compile error - Added GetFuncdefCount and GetFuncdefByIndex REVERT: 986a02b61a Fixed saving bytecode with function pointers REVERT: b4ef14867c Added RegisterFuncdef REVERT: a05d15ef2f Fixed a memory leak REVERT: 16ede0f99f Improved support for Borland C++ Builder REVERT: 3e64714d3d Fixed bug with restoring bytecode with template types that used classes declared later in script. REVERT: e2f606cc0a Fixed bug with templates in script classes REVERT: 6740c60edf Fixed a stack overflow in as_callfunc_x64_gcc.cpp REVERT: 1430ee78e9 Fixed problems on big endian CPUs. REVERT: f1df249aa9 Applying fixes to XBox 360 code. REVERT: 41d78b415e Fixed bug with implicit ref casts for global variables. REVERT: cbf5c006ee Fixed assert failure on compilation with undeclared variable REVERT: e3e2bc863e Fixed bug with property accessors in type conversions REVERT: 5e8fc27486 Fixed a bug in the saving of bytecode that caused problem with template classes. REVERT: b2b7d4e458 Added engine property to permit disabling property accessors REVERT: eed0f5fd68 The saved bytecode is now independent of the CPU byteorder REVERT: cc04aae9d3 - Strings are now only saved once in the pre-compiled bytecode - Fixed a bug with incremental garbage collection REVERT: 470a5c0b5a Further decreased the size of saved bytecode REVERT: ea5c52eb70 Fixed bug with property accessors in switch expression REVERT: 52f09244af No more recursiveness for property accessors in classes, when there is a true property of the same name. REVERT: 50f3ee68cd Further decreased the size of saved bytecode REVERT: b1273f4552 Property accessors won't go into infinite recursiveness when attempting to access true property of the same name. REVERT: cabe3431e2 Compiler no longer hangs on compiling enums with name conflicts. REVERT: f8df6c1967 Improving the size of the saved bytecode. REVERT: 297242c8dc Improving the size of the saved bytecode. REVERT: ad826849ab Fixed calling property accessor surrounded by parenthesis REVERT: 7379848c3d Bug fixes REVERT: 130230de5f Fixed size of enum types on 64 bit platforms REVERT: 0098551c05 Releasing 2.18.2 REVERT: ef25204531 Fixing a bug when growing the stack while calling a class method. REVERT: c8ddc8a266 Fixed bug with posix threads on 64bit platforms REVERT: 458acff58e Fixed bug with property accessor in do-while condition REVERT: 41f717fd8b Fixed bug on 64bit Linux native calling convention REVERT: aa2c732d1e Added Borland C++ Builder project and configuration REVERT: f939742075 Testing REVERT: 38956aaa02 Fixed bug with property accessors from within class method REVERT: a0e9968b4b Implicit conversion from handle to reference no longer gives compiler error. REVERT: 55f0f3a968 Fixed bug in virtual machine when growing the stack REVERT: d8db93498e Fixed bug in compiler REVERT: 531f2a1b72 Fixed bug when calling local function pointer with arguments. REVERT: 9706bac1f4 Fixed bug when parsing local function pointer variables. REVERT: 4c2a1bdc05 Completed the function pointer feature for 2.18.2. More improvements will be added in future versions. REVERT: fccc2a9be3 Fixed bug in compiler REVERT: 59c0da773c Added the bytecode instruction FuncPtr for pushing a function pointer on the stack. REVERT: 6871b8d4f3 It is now possible to call a function through a pointer that is member of a class. REVERT: 6600355c6c Fixed a bug with property accessors for objects in an array REVERT: c65943cc7d Fixed bug with property accessor in while condition REVERT: 83cdc25ff0 Fixed a bug in the compiler REVERT: 6ace36ddd2 Minor adjustments to the function pointer REVERT: 92e1239c55 It is now possible to call a function through a function pointer. REVERT: 84e30891de Working on the function pointers REVERT: edace57e43 Planning the implementation of the function call through function pointer. REVERT: 268ae5d979 Working on the function pointers. The address of a function can now be stored in a variable with matching signature for the funcdef. REVERT: ed9b44922b Working on the function pointers. REVERT: 9c1fb31eac Implemented parsing for the funcdef declaration. REVERT: 6a3b8df47c Updating change history to reflect release of 2.18.1 REVERT: 732b2a2c24 Releasing 2.18.1 REVERT: 562c185d07 Optimizations REVERT: 7435aa18fa Fixing the fix REVERT: 5bbf18ee7a Fixed bug where ref cast for null handle would raise a null pointer exception. REVERT: 58fbd8e599 Optimizing the generated bytecode. REVERT: 1575e5a5d2 Adding some comments on ideas for optimizations REVERT: d11ff3efc3 Fixed the assembler code for native calling conventions on 64bit Windows to work nicely with full compiler optimizations, i.e. make sure the stack is 16byte aligned and also has room for temporary stack space. REVERT: 8386bccd84 Fixed bug with saving bytecode and script constants. REVERT: bb17373635 - Fixed memory leak when global property forms a cyclic reference an initialization function that calls a function that references the property. - Optimized the byte code. Especially scripts with lots of comparisons will see a great improvement. REVERT: a79103b677 Property accessors are now available for global properties as well. REVERT: acb1d577e6 Native calling conventions on Win64 is now fully working with MSVC compiler. REVERT: 4d4e4d3e9a Characters above 127 were incorrectly converted to UTF8 when scanner was set to ASCII REVERT: 13e0a8dda4 Only one test is still failing for native calling conventions on 64bit Windows. REVERT: f89b753486 Working on the native calling conventions for 64bit Windows REVERT: eb7cd0b712 Fixed a bug with asCContext::Abort that only suspended the execution. REVERT: 999ddb15da Native calling conventions on 64bit Windows is now mostly working. Only a few tests still fail. REVERT: 592a179d13 The cdecl calling convention is now working natively on 64bit Windows. REVERT: 69bbb0bd9a Working on support for native calling conventions on 64bit Windows. REVERT: 8862d43995 Fixed some 64bit compatibility issues. REVERT: 3ffd4ef4d1 Added support for asBEHAVE_LIST_FACTORY REVERT: 8d2856dbb4 Working on the new factory behaviour used with initialization lists REVERT: cb6852625e Using the copy constructor to initialize temporary copies of objects. REVERT: 81008415bf Changed the bytecode instructions to hold the address of the global variables directly in the arguments instead of an index into an array. REVERT: cb6f0574ac Releasing 2.18.0 REVERT: c5ad6ebe43 documentation REVERT: a14cd36d88 Updated the console sample to add the ability to dynamically declare user functions and variables. REVERT: 5b4bc5d1fa A week of work REVERT: df6eb2f40d Added full garbage collection to script functions and script class types so that these objects can be properly managed. REVERT: 24b66b1c81 - Added asIScriptModule::RemoveFunction - Started work on garbage collection for script functions REVERT: 7cf7aadc0e Working on CompileFunction REVERT: 2f196dff8e Added asIScriptModule::CompileFunction for dynamically compiling individual functions. REVERT: 02eee03179 The global properties are now reference counted as well. REVERT: 514b3eaabf Cleaning up the code a bit REVERT: 8713216f14 Changed the memory management of script functions to be reference counted. REVERT: 43f0fb9728 - Moved information about imported functions to the engine - The context no longer references the module REVERT: 1c3260a179 String constants are now shared between modules. REVERT: 7aa98eeccd - Added support for native calling conventions on iPhone. - Each script function now has its own list of global variables, instead of relying on the module for that. REVERT: 1b43dd42da Global script variables now have individual initialization functions which will permit variables to be added and removed separately from the module. REVERT: 49de2c7a86 Fixed some problems with AS_MAX_PORTABILITY mode. REVERT: 640e5bc3ef Minor fixes REVERT: 988514631d Fixed UTF16 encoding on big endian processors REVERT: 712365dfef - Improvements to the code - Documentation - Updating MinGW makefile REVERT: 73ce8c8ffb Fixed improper re-use of temporary variable by property get accessor when compiling binary operators REVERT: b0e679e57b Added support for UTF-16 encoded string literals REVERT: a08935cc4a Fixed crash with too large array sizes for built-in array object and array template add-on. REVERT: 3d7d0295b0 Fixed the samples makefiles for Linux GNUC REVERT: 0dc1105033 Fixed a bug with get and set property accessors on temporary variables. REVERT: efbd5317c1 Releasing 2.17.2. REVERT: 5d847c2808 Documentation REVERT: 7298cd6368 Minor changes REVERT: 5e46275367 Fixed bug in the template factory stub generation that made the stubs not clean up the arguments from the stack after returning. REVERT: 2dd78616f2 Added asBEHAVE_TEMPLATE_CALLBACK REVERT: 19c860e40a Fixed registration of class methods & behaviours when the type was registered in a previous config group. REVERT: 2e65106b85 Fixed bug in CScriptBuilder. Updated the include sample to use the new CScriptBuilder. REVERT: 596e3de86e Changed compiler to permit instantiation of ref types without default factory if a non-default factory is explicitly called. REVERT: 9ea3e562e8 Fixed bug in compiler that freed objects too early when a post operator returned a reference to a member. REVERT: 9ed3ec73f0 Fixed assert failure after compiler error in construct call. REVERT: e15fbc8018 Releasing 2.17.1 REVERT: 27121c69f2 Added const correctness for property accessors. REVERT: a39e37fbd6 Fixed the compilation of pre and post operators after a get property access. REVERT: a9ddef7042 - Officially added the support for get and set property accessors - Documented the property get and set property accessors REVERT: da40563d00 Some more work on getters and setters REVERT: c1ac7a1d04 Improved the CContextMgr a bit while fixing a memory access violation bug in it. REVERT: a627fee8c8 Getters and setters is now working for object types too. REVERT: 96412a9a2c - Renamed as_callfunc_armasm.s to as_callfunc_armasm.S as it seems it makes a difference to the GNUC compiler for Android. - Added makefile to compile AngelScript for Android. REVERT: 60be135cc1 Property accessors now work when used with function arguments as well. REVERT: 06ae260549 Fixed crash when loading pre-compiled bytecode that had classes with enums as members REVERT: 45e7c00b94 - Added support for the Android OS. - Adapted the assembler routines for ARM processors to GNUC. REVERT: 93ce4c58fd Property accessors can now be used from within class methods without prefixing them with this. REVERT: 74c2958b2c Fixed bug with &inout and constants for invalid script REVERT: 53920d95d1 Fixed an error in the parser that prevented the declaration of templates with a handle as subtype. REVERT: 6fb8db2d75 Improved the CScriptBuilder to allow custom include directive processing via a callback. REVERT: d8435560f3 Working on the get/set accessors REVERT: 516a01fc7e Added initial support for get/set accessors for properties. REVERT: c65cec9254 Fixing a bug in the loading of pre-compiled bytecode and the built-in array type. REVERT: 3e40e188e2 - Added reference counter to global variables. - Pre-compiled bytecode is now agnostic of the order the global properties were registered. REVERT: 4d354c88ee Changing the way global properties are stored internally. REVERT: ca49a747bd Added support for template types as subtypes of a template type. REVERT: 741fdd7120 Releasing 2.17.0 REVERT: d00e1f575e - Updated the C interface with the latest changes - Added CContextMgr as add-on with support for co-routines and concurrent scripts REVERT: 03fc8bbc0f - Adjusting the JIT compiler interface - Fixed the name space declaration in as_criticalsection.h REVERT: 53e9339907 Documentation REVERT: fb4c0beb21 - Added validation for duplicate switch cases in script compiler - Added AddRef, Release, and IsReadOnly methods to asIScriptFunction. - Deprecated asIScriptObject's GetPropertyPointer, which has been replaced with GetAddressOfProperty. - Deprecated asIScriptContext's GetArgPointer, which has been replaced with GetAddressOfArg. - Renamed as_scriptstruct files to as_scriptobject REVERT: 3c967092e2 - Fixed a bug with ref types as members of script classes. - The variable parameter type now receives references to objects, instead of references to pointers to objects. - Added IsReadOnly to asIScriptFunction. REVERT: 5243d9dd55 - Added CScriptArray add-on. - Updated documentation. - Changed asBC_SET8 to asBC_PshC8. REVERT: 65a4d1472c Fixed crash in compiler on invalid script. REVERT: a9d7aa7741 - Added asEP_INCLUDE_JIT_INSTRUCTIONS to add the extra instructions needed for JIT compilation. - Documentation REVERT: c8903f803b - documentation - fixed a bug with MSVC6 and scriptmath.cpp REVERT: 629a9bb847 Added CompareRelation and CompareEquality helper functions as add-ons REVERT: 672863f67c Added the atan2 function to the math add-on REVERT: 13203be527 Deprecated the asBEHAVE_ASSIGNMENT operator REVERT: d93c8fd586 - Change asBEHAVE_REF_CAST and asBEHAVE_IMPLICIT_REF_CAST to object behaviours. - Deprecated RegisterGlobalBehaviour, GetGlobalBehaviourCount, and GetGlobalBehaviourByIndex - Deprecated CompareScriptObjects REVERT: 4f2e74b840 Fixed some minor issues with x64 platform and AS_MAX_PORTABILITY REVERT: 703aa65f96 It's no longer required to define the application type flags when registering a value type, unless the type is going to be returned by value or passed by value to a function with native calling convention. REVERT: 279718c21c Minor adjustments to the JIT compiler plug-in interface REVERT: dedb84fc63 Completed the interface for external JIT compiler plugins REVERT: 404e77d211 More code cleanup for the JIT compiler interface REVERT: c2005802fa Added asIJITCompiler interface REVERT: fd233928ff - Cleaning up the code in preparation for public JIT compiler interface - Unified parts of the native calling convention code for better maintainability REVERT: 74c7eaf7e3 Fixed an error with AS_MAX_PORTABILITY. REVERT: b55e7072b4 Fixed some compiler warning on GCC 4 with full warnings turned on REVERT: 1672a7afcb - Added GetTypeId, GetSubTypeId, AddRef, and Release to asIObjectType - The built-in array type is now completely agnostic of the internals of the library, it sees only the public interface REVERT: 16f3f79a7f - Fixed compiler error in as_callfunc_xenon.cpp and some warnings in other files. - Removed all old deprecated functionality. REVERT: b6305b78e8 Releasing 2.16.3 REVERT: 8becba047e - Completed the script class operator overloads. - Documentation. REVERT: f88fe5d4bf All dual operators can now be implemented by the script classes. REVERT: 136c24a30f Script classes can now implement opCmp to support all relational comparison operators. REVERT: c2f8ec1bd4 Fixed a bug with addition and subtraction. REVERT: 4bae144908 - Compiler can now automatically swap operands for equality tests, if the left operand doesn't have a matching opEquals method, but the right operand does. - If conditions followed by an empty statement now give a compiler error. REVERT: 355b0acf29 Implemented == and != operator overloads with opEquals class method. REVERT: e0dadc9f80 Started working on implementing operator overloads for script classes. REVERT: 37e99e2598 Fixed bug in compiler with output references and constants REVERT: 284f6eb2b5 Documentation REVERT: 3e2a87b500 Added support for native calling conventions on ARM processors with MSVC compiler. REVERT: d2721db7be Releasing 2.16.2 REVERT: 5867602607 Fixed alignment bug for script class properties. REVERT: 7c4f29789d Fixed a rare bug with MinGW/GNUC with fully optimized application that receive float args in functions. REVERT: 758daaeb04 Updating gnuc makefiles REVERT: 35e77ba002 Added support for escape sequences \u and \U. Added asEP_SCRIPT_SCANNER property. With this full support for UTF8 encoded scripts is available. REVERT: 360383970d Enabled registering the template types for applications. It's working, but not quite useful yet as the application needs to be able to obtain more information from the script engine. REVERT: 51b130d399 Template work REVERT: 5869e147bf Template work. Code cleanup. REVERT: 7d121afc2a Fixed value of asTYPEID_SCRIPTOBJECT. REVERT: e3189d973c Working on the template type. REVERT: 6b76930782 Fixed crash in compiler upon error REVERT: 63e4442578 Changed the asFUNCTIONPR and asMETHODPR macros to use static_cast instead of C-style cast. REVERT: 69f466aeaa Global variables of primitive types are now always initialized before variables of non-primitive types so that constructors can safely access primitive global variables. REVERT: ab16c7dfa3 Fixed some compatibility issues with MSVC and 64bit REVERT: 5dc0cb66ff Fixed bug with multiple levels of inheritance. REVERT: dd47d7e885 Fixed crash on compiling invalid script. REVERT: 53351b0117 Fixed application crash after DiscardModule with objects still in garbage collector. REVERT: f374f251bd Progress on the template type support REVERT: a713590eb2 Releasing 2.16.1 REVERT: 0ff32fc4a8 Bug fixes and documentation REVERT: dd315d6384 Documentation REVERT: cca6790a34 Call stack is now only cleaned up when context is reused or released. This permits examining the call stack after the Execute method returns asEXECUTION_EXCEPTION. REVERT: 37d054e186 Fixed bug when compiling script functions that return 'const string'. REVERT: 1b060a0f78 - Fixed multithread support on FreeBSD. - Improved include directive support in CScriptBuilder to support relative paths. REVERT: c70204fe6c Fixed explicit value cast to object type via implicit value cast behaviour instead of constructor. REVERT: b6fc9ff964 Fixed bug with implicit value cast to another object type. REVERT: cb9097c840 Added support for specifying enum value with scope operator. REVERT: 82000927f4 - Compiler is now giving a proper error when script function returns reference (Thanks marvi) - Fixed crash when a script constructor that receives object handle throws an exception (Thanks cvet) - Removed compiler warnings on MSVC9 REVERT: 40da0a31d7 Bug fixes REVERT: 00ea0dabd9 Improved support for scripts containing international characters. REVERT: e3b590ce88 Fixed crash when assigning array to itself. REVERT: 8782f8e521 Fixed incorrect conversion of null to primitive REVERT: f3b0ade046 Fixed problem with float values and locale. REVERT: 38387724b6 - The built-in array object is now implemented as template object - Fixed a bug with implicit conversion from 'const obj@' to 'obj&' REVERT: 0f45f51896 Releasing 2.16.0 REVERT: ec3aabd223 Adjusting the autowrapper. REVERT: dddf9f3c4c Fixed assert failure after compiler error. REVERT: 8a4fcf48e0 Fixed bug with removing dynamic config groups that had registered a script class interface. REVERT: 21a06a07b1 Fixed some compiler warnings on GNUC. REVERT: efafc699b5 Documentation. REVERT: 4311ff5e96 Various bug fixes. REVERT: b0b65a3df8 Added out param to GetParamTypeId that permits querying reference type of function parameters. Added documentation for using script classes. REVERT: a4b67d246f Fixed crash when declaring a script class that inherits from a class declared below it REVERT: 62778dfeee Implemented GetAddressOfReturnLocation. Added resize method to the string add-ons. Added option for double precision to the math add-on. REVERT: fe436465ae - Completed interface changes for enumerating registered interface. - A few bug fixes. - Added the autowrapper add-on. - Removed all length output parameters where functions returned strings. REVERT: 6a01b75253 Added more methods for enumerating the registered interface. REVERT: d387dd0893 - Added enumeration of registered global properties. - Added engine property to turn off initialization of global variables, for when the compiler is separate from the actual application. - Changed CScriptBuilder to make metadata processing optional through conditional compilation. - Changed CScriptFile to be compatible with both CScriptString and std::string. REVERT: f6408d0c44 Added complete support for enumerating the code entities in the modules. REVERT: 2fc6f4b7bf Improved enumeration of object type info. Moved RegisterStdString to the add-on folder. REVERT: 5a597e4f29 Added enumeration of factory functions, and GetBaseType to asIObjectType. REVERT: 4890c869fd Changing asIScriptStruct to asIScriptObject. Type id for primitive types are now hardcoded to avoid need to look them up. Added asEP_BUILD_WITHOUT_LINE_CUES. REVERT: a6739ff4ad Fixing samples coroutine and events on Linux REVERT: e84b037ed7 Fixed bug in compiler. Fixed concurrent sample on Linux. REVERT: b9d8eb8a2d Releasing 2.15.2 REVERT: d5d754706a Fixed conditional compilation in CScriptBuilder. REVERT: 2428396adc Documentation. Added conditional compilation support to CScriptBuilder. REVERT: 082983dc1b Removing debug flags in gnuc makefile REVERT: 95eddef2fe Fixed auto handles in as_callfunc_x64_gcc REVERT: 914342240e Fixed some errors reported by valgrind REVERT: 824fcd3cea Generic functions are now prepared with a common function, independently of the native calling convention. REVERT: d576049534 GNUC/LINUX/64Bit doesn't support passing objects by value to application functions REVERT: 8b11b71ef7 Scope operator now works for variables, to permit accessing global variables when local variable has the same name. Fixed dangling pointer with removal of config groups. REVERT: 798b06b82b Fixed some 64bit compatibility issues REVERT: bf6daffd8d Adjusting 64bit support for Linux. Improved error messages for unmatching functions with scope operator. REVERT: a76e8ac4a2 The scope operator now permits calling global functions when the class implements the same, or calling methods from base class when the method is overloaded in the derived class. REVERT: 2ed26470f4 Added support for the scope resolution operator in the parser. The compiler still ignores it though. REVERT: 175d048362 Fixing more compatibility issues with 64bit REVERT: ef76e04c4c Adding -fPIC to GCC makefile REVERT: de5c8b6d82 Completed the support for native calling conventions on Linux 64bit. REVERT: 47678d47b7 Fixed as_config.h REVERT: 950afcd338 Fixed some 64bit compatibility issues REVERT: 930fbb737a Fixed as_atomic.cpp for older versions of GCC REVERT: c6ebd325fc Added support for native calling conventions on 64bit Linux. Still missing support for virtual methods. REVERT: 469ad5d949 Calling super class' constructor is now working REVERT: a929a99135 Added support for writing to CScriptString. REVERT: ec4629b3ea Fixed bug with pre-compiled bytecode REVERT: db0891f45a Fixed implicit conversion to base class when passing object to function expecting base class by reference. REVERT: 1285819da8 Fixed explicit cast for script classes. REVERT: ba57a1acf9 Fixed bug with script class factories with multiple arguments. REVERT: 98d3085efc Added support for inheritance to script classes. REVERT: e7cb44c6f9 Releasing 2.15.1 REVERT: 442dfd319e Several fixes for MinGW/Win32 REVERT: d246002801 Adjusting the library for Mac OS X REVERT: 840696e7be Changed as_atomic.cpp for Linux to use GNUC built-in functions instead of functions meant to be exclusive to the kernel. REVERT: 36b1607061 Minor adjustments REVERT: 1077463800 Documentation and more tests REVERT: 3cd02d5cd4 Memory for global variables is now allocated individually. REVERT: 64fba0fab2 Created factory stubs for creating the array object so that the compiler doesn't have to supply the object type as a hidden parameter. REVERT: e15e46f0c7 Fixed bug with temporary variables and index operator REVERT: 78b85d67cd Added factory functions for script classes. Compiler now call the factory functions to allocate reference objects instead of using the ALLOC bytecode. REVERT: f88c7a85a0 Fixed bug with bitwise operators and integers smaller than 32 bits REVERT: f70be5f358 Fixed a bug in CScriptBuilder add-on REVERT: 302fadbfdd Releasing 2.15.0 REVERT: 47b627b128 Documentation and improvements to the add-ons. REVERT: 04f3a7c903 Added the asIScriptModule interface. Moved all module methods from the engine interface to the module interface. REVERT: 95a3c9470b Planning ahead REVERT: 30c7f733d2 Fixed AS_MAX_PORTABILITY REVERT: 49147e1a27 Improving the CScriptBuilder REVERT: d42ddd4dff Removing old deprecated functions. Cleaning up the code. REVERT: 91553b441e FFixed assert failure. Added ScriptBuilder add-on REVERT: 8e67597758 Fixed a multithread issue with simultaneous access to the script node memory pool. REVERT: e85788ef5d Adding ParseToken REVERT: 3929f7507a Changing asIScriptContext::GetReturnPointer to GetAddressOfReturnValue. Changing asIScriptGeneric::GetArgPointer to GetAddressOfArg. REVERT: fe43acf82e Fixed bug with index operator and temporary objects. Fixed bug with tokenizer and !is token. Changed GetVarPointer to GetAddressOfVar. REVERT: e89d870add Fixed bug with saving bytecode with enums REVERT: 778da764e0 Various minor updates REVERT: d97782e8e6 Adding more control to the application about how garbage collection is done. REVERT: 0ab6a36bc4 Fixed a bug with assignment using temporary object REVERT: a32ac0ebd8 Releasing 2.14.1 REVERT: 6707564ad1 Fixed infinite loop while parsing script that declare const return value for class methods. Fixed some assert failures that happened after compilation errors. REVERT: 7c81103323 Added multithread support for MacOS X REVERT: 315b56eee6 Fixed a crash upon application exit when the script engine is released by global variable upon destruction. REVERT: 02f3c1a1e7 Implemented atomic reference counters for thread safety REVERT: 35192dfe4a Fixed the namespace for the scriptnode modules REVERT: 993ab9da55 Improving thread safety of the gc. REVERT: 05f33b2457 Preparing the GC for improvements REVERT: 9a1ecd081d Added library logo REVERT: 237f5baea8 Implemented the 'is' operator REVERT: 036e89844e New add-on: vector3 REVERT: 9005f1538e Added support for const script class methods REVERT: e7faa3a990 Updated change list REVERT: 8eb42dbc09 Added support for optional implicit handle types. Improved object handles in the script handle. REVERT: f5880b99bd Updated change list to reflect 2.14.0 release REVERT: 074d17e540 Releasing 2.14.0 REVERT: 359e5d65c4 Improvements to enumeration of global variables, type casts, etc. REVERT: 003fb72f82 Completed the feature 'shared interface type id for identical interfaces' REVERT: 2f1ae70257 Identical interfaces in two modules share the same type id. REVERT: 62f53d146f C interface and bug fixes REVERT: 05253811b7 Fixed some bugs with SCOPED reference types. REVERT: 01667cd462 Updating the documentation REVERT: f09563820a Writing documentation REVERT: f040eb85b4 Releasing 2.13.1 REVERT: a193eba93c Fixed bug with compiler optimization of constant expressions REVERT: 31ca05af5b Moving the documentation to doxygen format REVERT: c888353d68 Moving the documentation to doxygen format REVERT: 37682a4a6e Moving the documentation to doxygen format REVERT: 29f1e237e3 Added support for implicit ref casts REVERT: 29e358cf7e Implementing the implicit ref cast behaviour REVERT: d3ff1ba2fb Preparing the code for asBEHAVE_IMPLICIT_REF_CAST REVERT: 338992d884 Fixed bug with enums not ended with comma REVERT: 98eab84beb Implementing the asIModule interface REVERT: cb6dea7d41 Fixed bug with temporary variables not being released REVERT: 7c4417646a Reproduzing a bug REVERT: 74507685a3 Working on the asIScriptModule interface REVERT: 16c8874787 Extra validations in Register functions REVERT: fb72bf9235 Fixed bug with temporary variables REVERT: 9a1eeff48d Added some test cases to confirm reported bugs REVERT: 70257fc47b Added support for posix threads. Support for multithreading is now turned on by default. REVERT: 456f280338 Fixed CRITICAL_SECTION on 64bit Windows REVERT: afb5d67c59 Added asEP_ALLOW_MULTILINE_STRINGS REVERT: d397c9f483 Started on a separate C header file for the C interface REVERT: d6cd8f23d3 Implemented support for single quoted strings. REVERT: 64b609ba96 Fixed bug with ref casts and script class members. Added asCScriptFile add-on REVERT: 5fcf2543e1 Fixed the samples before the release of 2.13.0 REVERT: e387964d29 Releasing 2.13.0 REVERT: c083b480e2 Fixed a bug where global arrays of handles where initialized with handles of other global variables REVERT: 56c7262984 Fixed a bug in compiler that made the script engine fail to clear some object variables when entering functions. REVERT: a85c72ba40 Fixed cast with missing argument bug REVERT: b5e31b1fab Updated change history REVERT: 766a1c6ad0 Added initial support for native calling conventions on 64bit platforms REVERT: a80d0b6f49 Added support asBEHAVE_REF_CAST REVERT: 9f1920daf0 More interface improvements REVERT: f9ea6a2951 Moved some methods from asIScriptEngine to asIScriptFunction REVERT: 560980dc3b Added methods for enumerating parameter types to asIScriptFunction REVERT: f9be410dab Moved enumeration of methods to the asIObjectType interface REVERT: 6116f2ee37 Fixed enum values on big endian CPUs REVERT: bfe49d25f7 Fixed a bug with bool[] on PPC REVERT: c09a594096 Fixed compile error on GNUC/Linux REVERT: ba74f30e6c Added asEP_MAX_STACK_SIZE. Deprecated SetDefaultContextStackSize. REVERT: 6f5d6b5295 Fixed bug with shift operators and byte operands that should have been converted to dword REVERT: 0e45e16595 Global variables declared with enum types crashed the engine while compiling the script. REVERT: c6d1cda717 Moved enum declarations to top of header to fix compiler error on GNUC. REVERT: 7f7d9dd281 Completed the interface documentation. REVERT: 9994aee554 Added more function return values to the documentation. REVERT: f9681a3015 Fixed the C interface REVERT: d05ede7fa1 Fixed error on non-standards compliant compilers, e.g. MSVC6 REVERT: f7835a9a12 Updated change list according to version 2.12.0 REVERT: 2ace22bafa Releasing 2.12.0 REVERT: 80f3695925 Completed the API reference manual REVERT: ea8b28798c Setting eol-style REVERT: 9630d496f0 Corrected the behaviour values REVERT: 0bc52a6510 Completed some more functions for the doxygen reference manual. REVERT: a89f0e349e Completed some more functions for the doxygen reference manual. REVERT: 43e0eb74c7 Completed some more functions for the doxygen reference manual. REVERT: 8f1033d9d9 Added asIScriptFunction interface REVERT: e9aa58a764 Improved detection of calling conventions, and began Doxygen documentation. REVERT: 9eef474709 Added asIObjectType interface REVERT: ff06a986ac Improved the asIScriptGeneric interface REVERT: 89045a6e71 Made some tests with bstr REVERT: 9f94588b43 Added RegisterTypedef and documented the typedef feature REVERT: 6bbbe233fd Completed the enum feature and documented it. REVERT: f1fb097388 More tests and improvements of the enum feature REVERT: 0e7916b993 Implemented explicit casts with enum. REVERT: 7e4c597560 Implemented implicit conversions with enums. REVERT: 3bdc8ebb65 Improved enums and performed more tests. REVERT: c2b505b830 Added support for enum REVERT: ff1e26a42b Added support for typedefs REVERT: 50a76f7817 Fixed potential heap corruption REVERT: 4c67836a4d Fixed assert failure. Exchanged all asserts for asASSERT REVERT: db1c37b792 Fixed assert failure REVERT: 9ccb9c76b4 Releasing 2.11.2 REVERT: b170d2bdff Added asBEHAVE_VALUE_CAST REVERT: 71dc413555 Bug fix and improved error message. REVERT: a5ed37b077 Setting eol-style REVERT: 14291c9716 Fixed bug where compiler didn't warn about uninitialized variable when using post increment operator. Fixed bug with switch case and uint8 expressions. REVERT: 429160f80d Fixed compiler errors with CallFree and ArrayObjectFactory2 REVERT: f6ccb00847 Minor changes REVERT: 9d42dbc87b ExecuteString no longer locks dynamic configuration groups REVERT: 4de1bca1da Releasing 2.11.1 REVERT: 05e6c56948 Added scoped reference type. Fixed a couple of bugs. REVERT: dddf7e0b49 Releasing 2.11.0 REVERT: ed6b4bbcee Fixed compiler error in test project REVERT: 423daafe44 Fixed uint64 to double conversion REVERT: 6dfcbe9005 Preparing for 2.11.0 release. REVERT: 128d508386 Fixed some null pointer accesses. REVERT: 61580bd9ea bug fixes REVERT: 89a93b27b0 Fixed bug with gc releasing type definitions too early. REVERT: d9667fd02e Multithreading support in as_thread.cpp was broken REVERT: c5fc6fd1b9 Fixed a bug with bytecode optimization. REVERT: a82d77f154 Added support for native calling conventions on XBox 360. Added asOBJ_NOHANDLE flag to support singleton properties. REVERT: 4a8038153f Setting eol-style REVERT: d81dadccdd Implemented the factory behaviour. Added the pod type flag. Removed the alloc and free behaviours. REVERT: 3d75deb56c Improving RegisterObjectType and validation of behaviours and registered functions. REVERT: 122046e714 Released 2.10.0 REVERT: be9311afdd Bitwise operations now keep the signed/unsigned type of the left operand rather than converting the result to uint. Several bug fixes are also being checked in. REVERT: 3bb05582af Fixing compiler warnings REVERT: 1f412e2415 Adding CompareScriptObjects. Improving ScriptAny. Updating projects. REVERT: b8979767c2 Finishing the gc feature REVERT: e8226aea62 A couple of bug fixes REVERT: 1274e7be48 Fixed compiler warning in script dictionary REVERT: ba609796fb Fixed CallObjectMethod so it can call virtual methods REVERT: c2bb8caa20 Improving GC REVERT: 997fca65d3 bug fixes REVERT: 3310a6cb4d Improving GC REVERT: 5fa1580f4d Releasing 2.9.1 REVERT: 16cbc76667 Fixed a bug in ReleaseScriptObject REVERT: 3b82b37e09 Implementing destructors for script classes REVERT: ee0fb4757d Releasing 2.9.0 REVERT: 1c21852e2a Fixed bug on PPC REVERT: 2af1a6a4f1 Setting eol-style for new files REVERT: d47d4baaa3 Fixed a bug with &inout references and script class members REVERT: 35921168c3 Finished the dictionary REVERT: 941c1654dd Moving on with the ScriptDictionary implementation REVERT: 0b0211dfa7 New methods to support development of generic containers REVERT: 91dbd9457a Added engine property asEP_COPY_SCRIPT_SECTIONS REVERT: 72bb86c81d The beginning of a generic dictionary type REVERT: 21b8bd9298 Adding support for var type REVERT: a14b55db06 Making GetTypeIdByDecl understand const REVERT: ee4728e29d Added scriptmath as add-on REVERT: 569b84a2c2 Added GetThisPointer and GetThisTypeId REVERT: a55636618c Fixing GetGlobalVarPointer, Adding SetArgByte, SetArgWord, etc REVERT: 4e22c6a4da Updating project files REVERT: 10401f9df4 Removed redundant xcode project files REVERT: 8c85417bf5 Released 2.8.1 REVERT: b713faaec0 Compiler didn't always add references for used object types REVERT: 0c53f51c8c Updated concurrent sample for Mac REVERT: 3b59c50d69 Fixed explicit handles on array elements and class members REVERT: b697b06bf5 Updating MSVC7 projects REVERT: 6417867b82 Array now calls default constructor for script classes REVERT: 42a5a524b9 Fixed bug with save/load feature REVERT: 8511f86a37 Made a mistake when merging main.cpp in test_features REVERT: a17f0719b4 Fixed boolean operations with trash in upper bytes of word REVERT: 7f1d8d33c2 Fixed an assert failure after compiler error REVERT: b26d90319d Corrected ChkNullS REVERT: 5edbe4b6a2 Fixed problem with the use of CHKREF and parameters REVERT: b45bae039e Fixed bug with loading bytecode with script classes declared out of order REVERT: 9f9d99aa88 Removed obselete scr_handles.html REVERT: ee4faa4bc5 Updates to documentation and PS3 fixes for int64 problems REVERT: d891d1950f Fixed int64 parameters on 32bit PPC REVERT: a1d3f259d3 Fixed bug with loading bytecodes and registered array types REVERT: c2474c3ab4 Removed restriction of object type size REVERT: 7ca60c596f Fixed bug with initialization lists and arrays of handles REVERT: e332bef1e1 More tests for PPC. Corrections to make PS3 work again REVERT: 1f2d6ed45f Fixed bug in GetGlobalVarID methods REVERT: 7b89eb061a Minor bug fixes REVERT: a1a2fe5760 Moved PS3 code to as_callfunc_ppc_64.ppc REVERT: c85acc120b Mac OS PPC native calling conventions are now fully working REVERT: 9bbf231519 Mac OS X / PPC Native calling conventions is almost fully working now REVERT: 91f2d32378 Getting closer o supporting PPC on Mac OS X REVERT: 9f2a2b162a Changes in preparation for PPC / Mac OS X support REVERT: 7e14fcce22 More testing on PPC REVERT: 8563604165 Minor changes REVERT: 1b194b4ab1 Fixed incorrect name conflict between script class methods and global functions REVERT: 95eaf5b8f1 Fixed intermittent bug in byte code optimization on big endian processors REVERT: dac89e7bab Minor changes for PPC REVERT: 32479466af Fixed bug where properties were not validated correctly for name conflicts REVERT: 914f055448 Fixed assertion failure in compiler REVERT: e596164b9d Tiny fixes in test_feature project REVERT: 1f871e79c8 Applying corrections for PS3 code base which got broken with the last bug fixes REVERT: 997657b3c1 Fixed incorrect registration of functions with void parameters REVERT: ebbecb4f62 Fixed problem with const references and parameters REVERT: 4c92af8bc1 Fixed bug with booleans returned from functions that weren't always evaluated as false when expected REVERT: 65e57b347b Added support for native calling conventions on Mac OS X with Intel CPU REVERT: db0043e89d Tiny bug fix REVERT: 9f17576a5c Adding XCode project for test_feature REVERT: d84d132fbb Preparation for Mac OS X port REVERT: 4394a030d9 Minor changes REVERT: af0c90a446 Added support for PS3 native calling conventions REVERT: b5ec4a5c61 Fixed problem where C++ optimizations could change the result of operations REVERT: 850e84cf9f Fixed some compiler warnings REVERT: 098b740650 Reproduced problem with void parameter REVERT: 0da2eda8c9 More tests on bool types REVERT: 7c018a7e82 Minor bug fix. Added tests that reproduce some reported problems REVERT: a208282d80 Parser is now aware of declared types REVERT: 1e28880fe5 Minor changes. REVERT: 2de7071122 Improved memory usage from as_array REVERT: c78c30d6d2 Memory improvements REVERT: 59fe93d530 More fixes for AS_USE_NAMESPACE REVERT: c21bd1dc8e Fixed behaviour of the AS_USE_NAMESPACE macro REVERT: 7a18af83d1 Improvement on memory usage in compilation REVERT: 832e0b97aa Released 2.8.0a REVERT: 4ba3dad2f5 Minor fixes for Linux in test_feature REVERT: 99bb45b957 Fixed Linux compatibility issues with test_features. Converted samples to Linux. REVERT: 6a982f3aea Fixed the DELETEARRAY macro, removed the DELETEOBJARRAY macro REVERT: daf3edb8e1 Grammar fix in the change list. REVERT: 0e1ec407f9 Added AS_NO_USER_ALLOC macro to aid users having problem with the user defined memory functions. REVERT: 4c8168f0f7 Minor bug fix and better memory tracking REVERT: 4327f7ab9c Updated project files REVERT: 4a148de944 Fixed problem with exception handler in script class methods. Released version 2.8.0. REVERT: dc3e2d0e68 Blocked implicit conversion with multiple chained object constructions REVERT: e9288aa861 Added support for implicit conversions using class constructors REVERT: d8fcbc8626 More tuning of memory management REVERT: deacadf12d Tiny changes and added statistics for memory allocations. REVERT: b8f085afc2 Improved asCString with regards to memory management REVERT: ce482cccc4 Added SetUserData and GetUserData to context REVERT: 915f5d602b Added support for user defined memory manager. REVERT: eae8c90b05 Updated copyright message. REVERT: 6dd6d1c048 Fixed the bug with incorrect use of temporary variables during evaluation of function arguments. REVERT: d0ad656fdd Added tests to reproduce problem of incorrect use of temporary variables during expression evaluations. Fix will be available soon. REVERT: 672074f71c Fixed numerous compiler warnings REVERT: 0c732e089c Added GetArgPointer and GetReturnPointer. REVERT: e939515b66 Testing string parameters REVERT: 73b2bc1955 Use of the this keyword is not optional when accessing class members from within a class method. REVERT: c876c79d73 Merged 2.7.1b with trunk REVERT: 14bbd94200 Cleaned up the code a bit REVERT: 913934babf Fixed save/load bug REVERT: ae41ccd7af Fixed MSVC6 compile errors. Reproduced Save/Load bytecode bug. REVERT: 1914cd7d1c int64 and uint64 are now fully supported in expressions. REVERT: bfba0495c5 Added the int64 and uint64 types. Still need to make expressions use the full 64 bits though. REVERT: 5e156a5237 Deprecated the bits type, which is substituted by uint. REVERT: 6865276cbd Added Set/GetEngineProperty(). ALLOW_UNSAFE_REFERENCES is now an engine property. Removed deprecated functions. REVERT: 4e68f4b418 Fixed a bug with constant bits8 and bits16. REVERT: 59d6c4a9ff Testing bits8 REVERT: 9320982348 Releasing version 2.7.1 REVERT: e320938e80 More tests. REVERT: 16878b1014 Fixed a bug where temporary variables where incorrectly reused. REVERT: 1a43d7b331 Completed the cast operator. Several bug fixes. REVERT: 29c51e7026 VM now throws null exception if value is used after invalid dynamic cast REVERT: f8f585c283 Progress on the cast operator REVERT: 2d650dd575 Added the actual sample files REVERT: 5915f8f960 Added a sample showing how to implement #include REVERT: ee21970855 Fixed the last known problems with PPC in max portability mode. REVERT: 5a22a07d31 Added proper treatment of literal constants of 8bit and 16bit sizes REVERT: f80cd06659 Further changes towards PPC compatibility. Now only literal constants remain incompatible. REVERT: 1545fc2477 Fixed compiler differences for 64bit int literals REVERT: 7f854f8f66 Implemented iTOb and iTOw with compiler changes for support for big-endian CPUs REVERT: cfbc0db68e More fixes for PPC. Everything should be working now, except for when datatypes of different sizes are mixed in expressions. REVERT: 308a7465aa More fixes for PPC. REVERT: 4a994345a3 Setting eol-style for all source files REVERT: 615c6029f0 Planning ahead for improved handling of 8bit and 16bit variables in the virtual machine. This is necessary to support CPUs that use big endian memory layout. REVERT: a2a6fda1fc Minor changes REVERT: 3ead0d05d9 Restructured as_config.h to make it easier to maintain. REVERT: d487bd925b Fixed some portability issues for PPC. More is needed though. REVERT: 60dc3f6098 Setting eol-style to native REVERT: 705b678960 Unification of line endings REVERT: eef3a8c0e8 The new cast operator now works for primitive types. REVERT: afe315fc75 Fixed a bug with RegisterGlobalProperty. REVERT: dd3f77d127 Adding parsing of the cast<type>(expr) operator REVERT: 9c4f84eeb7 Minor bug fixes REVERT: be51b57547 Released 2.7.0 REVERT: 6af9533ede Added check to verify that script class members have a size greater than zero. REVERT: 7921131491 Added as_callfunc_ppc.cpp prepared by Pecan Heber and adjusted by Kunitoki REVERT: aaeb979c81 Fixed a compile error in as_bytecode.cpp REVERT: 1c6c0ee476 Added test_feature makefile for gnuc. REVERT: a1392b6c1b Fixed some bugs on 64bit processors REVERT: 04ce3e4758 Updated the tutorial sample to support the generic interface when native calling conventions are not supported. REVERT: 27adb83aac Several bug fixes REVERT: 6c4f24ffbf Updated test cases for better coverage with AS_MAX_PORTABILITY. REVERT: c29793ab37 - Added asGetLibraryOptions(). - Fixed a couple of bugs with AS_MAX_PORTABILITY. REVERT: c0748d0b0b Fixed a couple of compiler warnings. REVERT: 3dc591ffa7 Disabled assembler code on PPC by default, since the code in as_callfunc_ppc.cpp is incorrect. REVERT: f6eca932d6 - Fixed bug with Discard(). - Updated manual and samples with the new message callback. REVERT: 092289c40c Replaced SetCommonMessageStream with SetMessageCallback REVERT: c76118ea03 Fixed assert hit for some compiler errors REVERT: 7f70b2e33a Improved performance of Prepare() when calling the same script function repeatedly REVERT: edb957e08d Improved the speed for calling interface methods. REVERT: 4509657a16 Added xcode project files. Updated manual for GetVarPointer(). REVERT: 5a4ca9670c Added asIScriptContext::GetVarTypeId() REVERT: ba98e590a0 Deprecated the 'struct' keyword in the script language REVERT: 2d39a375be Unified the way script and system functions are stored by the engine REVERT: 843227c9ff Added support for the '\t' char escape sequence in string literals. REVERT: 0abafe4c47 - Added GetFunctionModule(), deprecated GetModuleIndex() and GetModuleNameFromIndex() - Saving and loading of bytecode now works with interfaces and class methods as well REVERT: 8240a131c8 - Improvements to MIPS code. - Preliminary native support for PPC processors. REVERT: a0ac57e827 Added methods RegisterInterface and RegisterInterfaceMethod to the engine REVERT: 9f3fe47940 Modified engine's GetMethod methods to take a typeId instead of module and type names. REVERT: e136a338d7 Added the interfaces to the script language so that polymorphism can be used. REVERT: 3845fe1093 Fixed a couple of bugs with the parser REVERT: 910e2fdf55 - More bug fixes - Added MIPS support REVERT: 4c3c6a6d8f Fixed bug where the engine failed to find the script class methods if the class was not defined in the default module. REVERT: 4b32359c15 Applied code changes to make the library work better with 64bit systems. REVERT: 53d79c9a09 Released 2.6.0 REVERT: cc6f71b1e9 Fixed a bug in Prepare() that caused the stackFramePointer to be calculated incorrectly, causing buffer overflow. REVERT: 9250cbf070 Reorganized the documentation. REVERT: 669a23db9e Released 2.6.0 WIP 4 REVERT: 5f8ee7adf6 Compiling for 64bit targets now automatically defines the AS_64BIT_PTR flag REVERT: 549313bb29 Added methods to the script engine to obtain the function id for script declared class methods. REVERT: 960a850b48 Updated the documentation with the latest changes. REVERT: 4594343d83 - Type conversions may now be used in initializations of global variables. - A line break is now added to the string passed to ExecuteString() allowing the use of one line comments. - When trying to register dual operators as object behaviours a text message explaining the error is sent to the message stream. REVERT: ffab304774 git-svn-id: https://svn.code.sf.net/p/angelscript/code/trunk@12 404ce1b2-830e-0410-a2e2-b09542c77caf REVERT: 587fa98c56 git-svn-id: https://svn.code.sf.net/p/angelscript/code/trunk@9 404ce1b2-830e-0410-a2e2-b09542c77caf REVERT: 018658d367 git-svn-id: https://svn.code.sf.net/p/angelscript/code/trunk@7 404ce1b2-830e-0410-a2e2-b09542c77caf REVERT: fdcd552f0e Added 2.1.0c REVERT: 445c9f1710 git-svn-id: https://svn.code.sf.net/p/angelscript/code/trunk@2 404ce1b2-830e-0410-a2e2-b09542c77caf REVERT: 44362156b0 Created the repository git-subtree-dir: Source/ThirdParty/AngelScript git-subtree-split: 1c55f0bf23af1b9a68d263a94270f3f69066839c
198 lines
5.9 KiB
C++
198 lines
5.9 KiB
C++
/*
|
|
AngelCode Scripting Library
|
|
Copyright (c) 2003-2018 Andreas Jonsson
|
|
|
|
This software is provided 'as-is', without any express or implied
|
|
warranty. In no event will the authors be held liable for any
|
|
damages arising from the use of this software.
|
|
|
|
Permission is granted to anyone to use this software for any
|
|
purpose, including commercial applications, and to alter it and
|
|
redistribute it freely, subject to the following restrictions:
|
|
|
|
1. The origin of this software must not be misrepresented; you
|
|
must not claim that you wrote the original software. If you use
|
|
this software in a product, an acknowledgment in the product
|
|
documentation would be appreciated but is not required.
|
|
|
|
2. Altered source versions must be plainly marked as such, and
|
|
must not be misrepresented as being the original software.
|
|
|
|
3. This notice may not be removed or altered from any source
|
|
distribution.
|
|
|
|
The original version of this library can be located at:
|
|
http://www.angelcode.com/angelscript/
|
|
|
|
Andreas Jonsson
|
|
andreas@angelcode.com
|
|
*/
|
|
|
|
|
|
//
|
|
// as_parser.h
|
|
//
|
|
// This class parses the script code and builds a tree for compilation
|
|
//
|
|
|
|
|
|
|
|
#ifndef AS_PARSER_H
|
|
#define AS_PARSER_H
|
|
|
|
#include "as_scriptnode.h"
|
|
#include "as_scriptcode.h"
|
|
#include "as_builder.h"
|
|
#include "as_tokenizer.h"
|
|
|
|
BEGIN_AS_NAMESPACE
|
|
|
|
class asCParser
|
|
{
|
|
public:
|
|
asCParser(asCBuilder *builder);
|
|
~asCParser();
|
|
|
|
int ParseFunctionDefinition(asCScriptCode *script, bool expectListPattern);
|
|
int ParsePropertyDeclaration(asCScriptCode *script);
|
|
int ParseDataType(asCScriptCode *script, bool isReturnType);
|
|
int ParseTemplateDecl(asCScriptCode *script);
|
|
|
|
#ifndef AS_NO_COMPILER
|
|
int ParseScript(asCScriptCode *script);
|
|
|
|
// Called from compiler
|
|
int ParseStatementBlock(asCScriptCode *script, asCScriptNode *block);
|
|
int ParseVarInit(asCScriptCode *script, asCScriptNode *init);
|
|
int ParseExpression(asCScriptCode *script);
|
|
#endif
|
|
|
|
asCScriptNode *GetScriptNode();
|
|
|
|
protected:
|
|
void Reset();
|
|
|
|
void GetToken(sToken *token);
|
|
void RewindTo(const sToken *token);
|
|
void SetPos(size_t pos);
|
|
void Error(const asCString &text, sToken *token);
|
|
void Warning(const asCString &text, sToken *token);
|
|
void Info(const asCString &text, sToken *token);
|
|
|
|
asCScriptNode *CreateNode(eScriptNode type);
|
|
|
|
asCScriptNode *ParseFunctionDefinition();
|
|
asCScriptNode *ParseParameterList();
|
|
asCScriptNode *SuperficiallyParseExpression();
|
|
asCScriptNode *ParseType(bool allowConst, bool allowVariableType = false, bool allowAuto = false);
|
|
asCScriptNode *ParseTypeMod(bool isParam);
|
|
void ParseOptionalScope(asCScriptNode *node);
|
|
asCScriptNode *ParseRealType();
|
|
asCScriptNode *ParseDataType(bool allowVariableType = false, bool allowAuto = false);
|
|
asCScriptNode *ParseIdentifier();
|
|
bool ParseTemplTypeList(asCScriptNode *node, bool required = true);
|
|
void ParseMethodAttributes(asCScriptNode *funcNode);
|
|
|
|
asCScriptNode *ParseListPattern();
|
|
|
|
bool IsRealType(int tokenType);
|
|
bool IsDataType(const sToken &token);
|
|
bool IdentifierIs(const sToken &t, const char *str);
|
|
|
|
#ifndef AS_NO_COMPILER
|
|
// Statements
|
|
asCScriptNode *SuperficiallyParseStatementBlock();
|
|
asCScriptNode *SuperficiallyParseVarInit();
|
|
asCScriptNode *ParseStatementBlock();
|
|
asCScriptNode *ParseStatement();
|
|
asCScriptNode *ParseExpressionStatement();
|
|
asCScriptNode *ParseSwitch();
|
|
asCScriptNode *ParseCase();
|
|
asCScriptNode *ParseIf();
|
|
asCScriptNode *ParseFor();
|
|
asCScriptNode *ParseWhile();
|
|
asCScriptNode *ParseDoWhile();
|
|
asCScriptNode *ParseReturn();
|
|
asCScriptNode *ParseBreak();
|
|
asCScriptNode *ParseContinue();
|
|
asCScriptNode *ParseTryCatch();
|
|
|
|
// Declarations
|
|
asCScriptNode *ParseDeclaration(bool isClassProp = false, bool isGlobalVar = false);
|
|
asCScriptNode *ParseImport();
|
|
asCScriptNode *ParseScript(bool inBlock);
|
|
asCScriptNode *ParseNamespace();
|
|
asCScriptNode *ParseFunction(bool isMethod = false);
|
|
asCScriptNode *ParseFuncDef();
|
|
asCScriptNode *ParseClass();
|
|
asCScriptNode *ParseMixin();
|
|
asCScriptNode *ParseInitList();
|
|
asCScriptNode *ParseInterface();
|
|
asCScriptNode *ParseInterfaceMethod();
|
|
asCScriptNode *ParseVirtualPropertyDecl(bool isMethod, bool isInterface);
|
|
asCScriptNode *ParseEnumeration();
|
|
asCScriptNode *ParseTypedef();
|
|
bool IsVarDecl();
|
|
bool IsVirtualPropertyDecl();
|
|
bool IsFuncDecl(bool isMethod);
|
|
bool IsLambda();
|
|
bool IsFunctionCall();
|
|
|
|
// Expressions
|
|
asCScriptNode *ParseAssignment();
|
|
asCScriptNode *ParseAssignOperator();
|
|
asCScriptNode *ParseCondition();
|
|
asCScriptNode *ParseExpression();
|
|
asCScriptNode *ParseExprTerm();
|
|
asCScriptNode *ParseExprOperator();
|
|
asCScriptNode *ParseExprPreOp();
|
|
asCScriptNode *ParseExprPostOp();
|
|
asCScriptNode *ParseExprValue();
|
|
asCScriptNode *ParseArgList(bool withParenthesis = true);
|
|
asCScriptNode *ParseFunctionCall();
|
|
asCScriptNode *ParseVariableAccess();
|
|
asCScriptNode *ParseConstructCall();
|
|
asCScriptNode *ParseCast();
|
|
asCScriptNode *ParseConstant();
|
|
asCScriptNode *ParseStringConstant();
|
|
asCScriptNode *ParseLambda();
|
|
|
|
bool IsType(sToken &nextToken);
|
|
bool IsConstant(int tokenType);
|
|
bool IsOperator(int tokenType);
|
|
bool IsPreOperator(int tokenType);
|
|
bool IsPostOperator(int tokenType);
|
|
bool IsAssignOperator(int tokenType);
|
|
|
|
bool CheckTemplateType(const sToken &t);
|
|
#endif
|
|
|
|
asCScriptNode *ParseToken(int token);
|
|
asCScriptNode *ParseOneOf(int *tokens, int num);
|
|
|
|
asCString ExpectedToken(const char *token);
|
|
asCString ExpectedTokens(const char *token1, const char *token2);
|
|
asCString ExpectedOneOf(int *tokens, int count);
|
|
asCString ExpectedOneOf(const char **tokens, int count);
|
|
asCString InsteadFound(sToken &t);
|
|
|
|
bool errorWhileParsing;
|
|
bool isSyntaxError;
|
|
bool checkValidTypes;
|
|
bool isParsingAppInterface;
|
|
|
|
asCScriptEngine *engine;
|
|
asCBuilder *builder;
|
|
asCScriptCode *script;
|
|
asCScriptNode *scriptNode;
|
|
|
|
asCString tempString; // Used for reduzing amount of dynamic allocations
|
|
|
|
sToken lastToken;
|
|
size_t sourcePos;
|
|
};
|
|
|
|
END_AS_NAMESPACE
|
|
|
|
#endif
|