a temporary parameter location, since calls cannot overwrite parameters
already on the stack in that case (it will just grow)
git-svn-id: trunk@17144 -
* Now g_initialize, g_finalize, g_incrrefcount and g_decrrefcount should never more be used for open arrays, trigger internal error if it happens.
git-svn-id: trunk@17137 -
forward-declared class, only search the current symtable rather than the
entire symtable stack (to prevent finding types in e.g. nested types)
git-svn-id: trunk@17128 -
declared inside the the current structdef hierarchy: properly deal with
multiple types of the same name nested into each other, by keeping track
of at which point in the hierarchy we found the first type (and afterwards
continuing from there, instead of from any point in the hierarchy where
a type with this name can be found)
git-svn-id: trunk@17126 -
* Separated two almost identical parts of code into procedure rangecheck_string;
- Removed range checking of regular_array[constant], which should, according to the comments, happen in typecheckpass. tvecnode.pass_typecheck indeed does the necessary tests, so removing this duplicate check also eliminates duplicate warning when range checking is off.
git-svn-id: trunk@17124 -
enclosing types, so that it works both for single_type() and
read_named_type() (-> works inside class definitions)
* modified tclass13 to test this
git-svn-id: trunk@17111 -
* Unified fpc_initialize_array,fpc_finalize_array with fpc_decref_array and fpc_addref_array by removing 'size' parameter from the former two. Element size is easily calculated from RTTI, so omitting it simplifies code generation. All four helpers are now callable by tcg.g_array_rtti_helper().
* ncgutil.pas: initialization of open array out-parameters is now done properly (using fpc_initialize_array).
+ Test
git-svn-id: trunk@17081 -
added comments why (solves duplicate symbol error when adding a category
for an objcclass in the interface and then another one in the
implementation of a unit, problem reported by Ryan Joseph on the
mac-pascal list)
git-svn-id: trunk@16902 -
* Pass dispinterfaces with correct type (varDispatch).
* Pass skipped parameters as EmptyParam (vType=varError, vError=DISP_E_PARAMNOTFOUND), as COM requires to preserve correct argument count and positions.
* Since ttempcreatenode.size can be set after creation, don't calculate parameter size in first pass, this simplifies things a bit.
git-svn-id: trunk@16863 -
* Dispinterfaces can be assigned/typecasted to Variants and vice-versa.
* At the same time, disabled corbainterface assignment compatibility with Variants. Simply intermixing COM and CORBA interfaces is wrong since it causes reference counting calls on CORBA interfaces.
* Dispinterfaces are returned in parameter, similar to regular interfaces.
* Fixed crash in comobj.pp due to incorrect typecast.
* Fixed incorrect dispinterface declarations in the test itself. Now it compiles and works (if MS Excel is installed).
git-svn-id: trunk@16835 -