Commit Graph

51907 Commits

Author SHA1 Message Date
svenbarth
236c2344a9 + add Invoke() function and functions to generate callback functions with a procedure or method variable
git-svn-id: trunk@37094 -
2017-08-31 21:07:32 +00:00
svenbarth
2471cd57b5 + add manager framework which provides implementations for invoking functions at runtime and generating function implementations
git-svn-id: trunk@37093 -
2017-08-31 21:05:03 +00:00
svenbarth
c6cd64a790 + add new methods AsUnicodeString and AsAnsiString which are internally used by AsString depending on the type of String
git-svn-id: trunk@37092 -
2017-08-31 20:26:52 +00:00
svenbarth
4fcd0391ae * use new SetSize field to simplify set handling in TValue
git-svn-id: trunk@37091 -
2017-08-31 20:23:52 +00:00
svenbarth
5c97248f85 + also write the set's size to the RTTI as that simplifies handling in Invoke()
git-svn-id: trunk@37090 -
2017-08-31 19:23:12 +00:00
svenbarth
1950e57899 * fix order in tinternaltypeprefix so that it fits internaltypeprefixName
git-svn-id: trunk@37089 -
2017-08-31 18:53:20 +00:00
Mattias Gaertner
e54f02048f pastojs: fixed tests
git-svn-id: trunk@37088 -
2017-08-31 13:18:04 +00:00
Mattias Gaertner
b5332501d7 fcl-passrc: scanner: fixed error message format to be fpc compatible
git-svn-id: trunk@37087 -
2017-08-31 13:17:48 +00:00
svenbarth
77dad75f3b * add libffi to packages fpmake
git-svn-id: trunk@37086 -
2017-08-30 19:30:32 +00:00
svenbarth
0553d94765 * generate Makefile after r37084
git-svn-id: trunk@37085 -
2017-08-30 19:29:44 +00:00
svenbarth
0140028d4e + add headers for the ffi library, the foreign function call library
git-svn-id: trunk@37084 -
2017-08-30 19:28:56 +00:00
svenbarth
7b675b6769 * correctly write the type of open array parameters as the element def and not the array def
+ added test that shows the linking error if not done so (otherwise that should already be covered by trtti15.pp)

git-svn-id: trunk@37083 -
2017-08-29 20:17:24 +00:00
svenbarth
ce958cacc4 + add and document a way to hide the generic methods from Lazarus' CodeTools as they don't support them yet
git-svn-id: trunk@37082 -
2017-08-29 18:38:24 +00:00
svenbarth
92caf587f5 + add generic function TValue.From<> which is a shorthand of TValue.Make()
git-svn-id: trunk@37081 -
2017-08-29 18:37:13 +00:00
svenbarth
83e4585b0f * correctly handle unit identifiers inside specializations of generic routines
git-svn-id: trunk@37080 -
2017-08-29 18:29:10 +00:00
blikblum
9ead4329c6 sqlite3ds: change ApplyUpdates to raise an exception if an error occurs
git-svn-id: trunk@37079 -
2017-08-27 19:44:06 +00:00
svenbarth
46de720c63 - since DataSize for method pointers works correctly remove the "?"-comment
git-svn-id: trunk@37078 -
2017-08-27 15:31:54 +00:00
svenbarth
4ff6c7bddf + add Delphi compatible exception types
git-svn-id: trunk@37077 -
2017-08-27 15:30:38 +00:00
svenbarth
fde056899d + add a TArray specialization for TValue as Lazarus does not yet handle inline specializations in parameter declarations gracefully
git-svn-id: trunk@37076 -
2017-08-27 15:29:57 +00:00
svenbarth
0b1b82bb2d * test reference of empty values of different types
git-svn-id: trunk@37075 -
2017-08-27 14:02:14 +00:00
svenbarth
a06ed3c929 * adjust handling of empty buffer as a valid reference is needed nevertheless
git-svn-id: trunk@37074 -
2017-08-27 14:01:36 +00:00
svenbarth
25d9c85a87 - remove debug output -.-
git-svn-id: trunk@37073 -
2017-08-27 13:30:06 +00:00
svenbarth
36451e271c * test for unassigned TypeInfo
git-svn-id: trunk@37072 -
2017-08-27 13:29:14 +00:00
svenbarth
93a65d3a78 * correctly handle the case of an unassigned TypeInfo
git-svn-id: trunk@37071 -
2017-08-27 13:28:49 +00:00
svenbarth
4de7b43a5c * enable tests of TTestMethod, TTestEnum and TTestSet now that they're public and Delphi doesn't complain anymore about them not having any runtime information...
git-svn-id: trunk@37070 -
2017-08-27 12:42:45 +00:00
svenbarth
60217d87a4 * implement handling of tkSet (which is a hybrid type regarding its storage)
git-svn-id: trunk@37069 -
2017-08-27 12:41:57 +00:00
svenbarth
820ba03ef0 * allow making a value of a enumeration
git-svn-id: trunk@37068 -
2017-08-27 12:41:14 +00:00
svenbarth
b1439c066a * share types to reduce unnecessary duplication
git-svn-id: trunk@37067 -
2017-08-27 11:59:34 +00:00
svenbarth
4dc6d1f8f6 * test for correct DataSize if value is empty
git-svn-id: trunk@37066 -
2017-08-27 11:47:39 +00:00
svenbarth
4ae1d65bad * GetDataSize also needs to return a valid size if the value is empty
git-svn-id: trunk@37065 -
2017-08-27 11:47:07 +00:00
svenbarth
621316c6dc * raw interfaces are not handled through IValueData so correctly return their size in GetDataSize
git-svn-id: trunk@37064 -
2017-08-27 11:46:15 +00:00
svenbarth
5f02c30eed * explicitely state which check failed
git-svn-id: trunk@37063 -
2017-08-27 11:42:59 +00:00
svenbarth
1dccc3469b * more correct cleaning of the variant part of TValueData in case a Pointer is larger or equal to QWord in size
git-svn-id: trunk@37062 -
2017-08-27 11:42:06 +00:00
svenbarth
ec7a17d1e3 * extend test for interface helper by tests for "inherited"
git-svn-id: trunk@37061 -
2017-08-25 19:37:44 +00:00
svenbarth
6acba684d4 * class helpers: fix calling virtual methods of the extended type using inherited
git-svn-id: trunk@37060 -
2017-08-25 19:36:56 +00:00
maciej-izak
597cf52a3a fcl-passrc: paswrite: allow to write procedure type
git-svn-id: trunk@37059 -
2017-08-25 12:01:36 +00:00
maciej-izak
2e37c05f23 fcl-passrc: pparser: "class var" is section, not single modifier
git-svn-id: trunk@37058 -
2017-08-25 08:19:55 +00:00
michael
6e308feb60 * Patch from Pascal Riekenberg to fix HasAggregate for functions
git-svn-id: trunk@37057 -
2017-08-25 07:54:07 +00:00
pierre
e325284160 Fix compilation failure for systems that do not have dynlibs
git-svn-id: trunk@37056 -
2017-08-25 07:28:35 +00:00
florian
4d5a94644f * do not call a_load_reg_reg with tosize=OS_NO
git-svn-id: trunk@37055 -
2017-08-24 20:09:15 +00:00
michael
f6918dac3e * Fix from Graeme Geldenhuys to avoid memleaks by early exit
git-svn-id: trunk@37054 -
2017-08-24 14:53:33 +00:00
michael
4f6b0feda3 * Patch from Graeme Geldenhuys to fix some unused variables warnings
git-svn-id: trunk@37053 -
2017-08-24 14:51:55 +00:00
michael
df49642935 * Patch from Graeme Geldenhuys to fix visibility warnings
git-svn-id: trunk@37052 -
2017-08-24 14:50:31 +00:00
michael
c74cf991a0 * Patch from Graeme Geldenhuys to avoid compiler warnings
git-svn-id: trunk@37051 -
2017-08-24 14:48:59 +00:00
michael
a4c4ce1764 * Capture result in SafeLoadLibrary
git-svn-id: trunk@37050 -
2017-08-24 09:27:49 +00:00
michael
b6700f68b8 * Fix bug #32314 (SafeLoadLibrary does nothing on other platforms than windows)
git-svn-id: trunk@37049 -
2017-08-24 08:46:07 +00:00
michael
0117568c25 * Patch from Martok to let CreateElement create correct class (bug ID 32322)
git-svn-id: trunk@37048 -
2017-08-24 08:26:50 +00:00
michael
5e51c9cc06 * Patch from Martok to avoid closing tags multiple times
git-svn-id: trunk@37047 -
2017-08-24 08:15:42 +00:00
michael
164778b020 * Patch from Martok to fix compilation using build project (Bug ID 32322)
git-svn-id: trunk@37046 -
2017-08-24 08:11:15 +00:00
michael
a8aab3ea97 * Modified Patch from Pascal Riekenberg to implement VisibleExpr, plus some refactoring
git-svn-id: trunk@37045 -
2017-08-24 08:00:57 +00:00