Commit Graph

30770 Commits

Author SHA1 Message Date
Jonas Maebe
cd24bb4df6 + tests forgotten to commit earlier
git-svn-id: branches/objc@13678 -
2009-09-08 16:03:05 +00:00
Jonas Maebe
3b1e285f70 * fixed number of colons in (fake) message names
git-svn-id: branches/objc@13677 -
2009-09-08 16:00:15 +00:00
Jonas Maebe
0549f79555 * fixed test (NSZone is not a class, define a local class to alias)
git-svn-id: branches/objc@13676 -
2009-09-08 15:57:56 +00:00
Jonas Maebe
1705a1e5b8 * fixed memory leak after previous change
git-svn-id: branches/objc@13671 -
2009-09-07 19:05:48 +00:00
Jonas Maebe
ab8e119c3e * use separate pools for obj-c strings and string references
git-svn-id: branches/objc@13670 -
2009-09-07 19:01:50 +00:00
Jonas Maebe
d56a936520 * forgot to commit error message from r13668
git-svn-id: branches/objc@13669 -
2009-09-07 18:30:57 +00:00
Jonas Maebe
bcfcf30e04 * give an error if the number of formal parameters of an obj-c method
does not match the number of colons in the message name

git-svn-id: branches/objc@13668 -
2009-09-07 18:07:25 +00:00
Jonas Maebe
fc40e1fe5b + support for implementing Objective-C classes in Pascal,
based on patch by Dmitry Boyarintsev (mantis #14508)
   o Todo: while parsing the class declaration, check whether the
       field types are valid for use in an obj-c class
  * use a common pool for selector names generated by objcselector()
    and by the rtti info for implemented classes

git-svn-id: branches/objc@13663 -
2009-09-06 18:35:48 +00:00
Jonas Maebe
1048ac96d5 * skip hidden function result parameters when generating message signatures
git-svn-id: branches/objc@13662 -
2009-09-06 17:18:49 +00:00
Jonas Maebe
27385550f8 * use the (sorted) paras rather than the (unsorted) parasymtable when
generating method signatures

git-svn-id: branches/objc@13661 -
2009-09-06 17:15:00 +00:00
Jonas Maebe
ac1b340755 * quote the mangled name of ObjC methods, because the +/- otherwise
confuse the assembler (patch by Dmitry Boyarintsev, from mantis
    #14508)
  * use objextname and not objrealname in the method name (extname is
    the class/protocol/category name as it appears/will appear to the
    ObjC runtime)

git-svn-id: branches/objc@13655 -
2009-09-05 21:33:58 +00:00
Jonas Maebe
64af998435 * correct type of _cmd parameter for ObjC methods (is objc_id, not
voidpointer) (patch by Dmitry Boyarintsev, part of mantis #14508)

git-svn-id: branches/objc@13654 -
2009-09-05 21:03:55 +00:00
Jonas Maebe
ab3294dce2 * fixed handling of "type x = y" for objcclass/objcprotocol
* don't allow "type x = type y" for objcclass/objcprotocol for now
    (would require generating new rtti for the new name)

git-svn-id: branches/objc@13641 -
2009-09-03 19:42:37 +00:00
Jonas Maebe
1f1396596e * don't insert vmt for objcprotocols either
git-svn-id: branches/objc@13639 -
2009-09-03 11:12:57 +00:00
Jonas Maebe
970fc43aa5 * fixed support for forward-declared objcprotocols
+ test (also for warning about missing constructor)

git-svn-id: branches/objc@13633 -
2009-09-01 13:55:14 +00:00
Jonas Maebe
f586299b6a * don't warn that a constructor is necessary for objc classes/protocols
(since they can't have a constructor)

git-svn-id: branches/objc@13632 -
2009-09-01 13:54:12 +00:00
Jonas Maebe
744d20d086 * allow "array of const" parameters again for objcclass/objcprotocol methods
after merge of r13618 from trunk
  * also allow "varargs" for objclass/objcprotocol methods
  * set the cdecl calling convention for objcclass/objcprotocol methods in
    handle_calling_convention() rather than in a separate routine in
    pdecobj (and do the same for cppclass methods)
  * check that array of const parameters and varargs are only used with
    external objc-methods (can only be done after the class is parsed,
    because earlier on it's not known yet whether or not it is external)

git-svn-id: branches/objc@13624 -
2009-08-30 11:02:28 +00:00
Jonas Maebe
ed38015758 * release allocated object at the end
git-svn-id: branches/objc@13623 -
2009-08-30 10:57:54 +00:00
Jonas Maebe
15cb7aa49c * added { %norun }
git-svn-id: branches/objc@13622 -
2009-08-30 10:56:09 +00:00
Jonas Maebe
5082e23d57 Merged revisions 13599-13600,13602-13604,13608,13615-13618 via svnmerge from
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk

git-svn-id: branches/objc@13621 -
2009-08-30 09:50:36 +00:00
Jonas Maebe
b15fb4afb5 * renamed hidden selector parameter to Objective-C methods from msgsel to
_cmd for naming consistency with the Objective-C runtime (no effects
    on existing code)

git-svn-id: branches/objc@13620 -
2009-08-30 09:34:45 +00:00
Jonas Maebe
b3737214b0 * use paraloc info to obtain parameter size (instead of (re)calulcating it
from the def)
  + added (disabled) code to correctly calculate the parameter offsets for
    ppc, see comments why it's not activated

git-svn-id: branches/objc@13619 -
2009-08-30 09:30:59 +00:00
Jonas Maebe
ceb547d027 * only allow cdecl "array of const" parameters for procvars and for external
routines (just like "varargs"), because if implemented in Pascal then
    on the callee side this array of const parameter is treated as a Pascal-
    style array of const
  * don't give the "cdecl'ared functions have no high parameter" warning for
    array of const parameters for cdecl external routines and procvars

git-svn-id: trunk@13618 -
2009-08-30 08:52:38 +00:00
Jonas Maebe
ae6200ce72 + tests forgotten to commit as part of r13334
git-svn-id: trunk@13617 -
2009-08-30 08:37:53 +00:00
Jonas Maebe
1b6657cf21 * make test fail if the wrong method is called
git-svn-id: trunk@13616 -
2009-08-30 08:33:43 +00:00
florian
e8dff46f8e * several small bugs in the handling of implements fixed, resolves #14418
git-svn-id: trunk@13615 -
2009-08-30 08:01:10 +00:00
florian
a8c6d9ec3a * partially reverted 13571, I didn't get it work on W7 x64 in win32 mode
* use $ffffffff to signal an unsed TLSKey, 0 is a valid TLSKey and could be returned by Windows in theory

git-svn-id: trunk@13608 -
2009-08-29 20:46:06 +00:00
sergei
e9e6439345 * dom.pp: fixed one possible reason of crashing in Delphi 2009
* xmlutils.pp: clean up

git-svn-id: trunk@13604 -
2009-08-29 18:11:08 +00:00
michael
f853ac4c63 * Undid previous patch, because not all compiles
git-svn-id: trunk@13603 -
2009-08-27 20:10:54 +00:00
michael
612d58c80f * Patch from Dariusz Mazur to fix compilation with Delphi
git-svn-id: trunk@13602 -
2009-08-27 18:40:17 +00:00
Jonas Maebe
ec8364904c * set the size of the (invalid) page at address zero to 64kb for 32 bit
Darwin platforms, so that no data can be placed below that address.
    This fixes the strange Windows-compatible resource API, which
    assumes that addresses <64kb do not exist.

git-svn-id: trunk@13600 -
2009-08-26 21:18:53 +00:00
marco
1399b7f8fb * open chm in nonexclusive mode. Could cause problems on Windows Vista where filelocks last even longer after closing.
git-svn-id: trunk@13599 -
2009-08-26 20:13:55 +00:00
Jonas Maebe
a149674a75 Merged revisions 13458-13596 via svnmerge from
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk

git-svn-id: branches/objc@13598 -
2009-08-25 19:47:36 +00:00
Jonas Maebe
8def2c2ac3 * fixed compilation after introduction of strict class type checking
for var/out parameters

git-svn-id: branches/objc@13597 -
2009-08-25 19:43:45 +00:00
Jonas Maebe
1a34492990 * fixed test after merge in r13458 (selector() -> objcselector())
git-svn-id: branches/objc@13596 -
2009-08-25 19:10:18 +00:00
Jonas Maebe
106c0673c0 * allow passing records to C varargs (also allowed by C)
git-svn-id: trunk@13595 -
2009-08-25 19:04:34 +00:00
Jonas Maebe
ea520d1c6b * NSZone is a record, not a class (thanks to Gorazd Krosl for the remark)
git-svn-id: branches/objc@13594 -
2009-08-25 18:52:30 +00:00
Jonas Maebe
bf7456d8eb * also change performSelector_withObject_withObject_ in NSObject
(previous change was in NSObjectProtocol)

git-svn-id: branches/objc@13593 -
2009-08-25 18:50:53 +00:00
Jonas Maebe
4f3aa80b4d * corrected performSelector_withObject_withObject_ method name (added
ending _)

git-svn-id: branches/objc@13592 -
2009-08-25 18:44:29 +00:00
Jonas Maebe
666f345df4 * allow objcclasstype.classmethod()
git-svn-id: branches/objc@13591 -
2009-08-25 18:26:06 +00:00
marco
8864f510e0 * lowercased a PQprepare's second p. As per mantis 14430
git-svn-id: trunk@13590 -
2009-08-25 15:14:53 +00:00
florian
6d2a9dd173 + file forgotten to add in r13588
git-svn-id: trunk@13589 -
2009-08-24 17:22:25 +00:00
florian
1bbc9b3e13 * implicit units in a Makefile.fpc are installed when doing a cross install, however if they are referenced only from a program they won't be build so a cross install fails: added build unit, resolves #14409
git-svn-id: trunk@13588 -
2009-08-23 18:20:29 +00:00
Jonas Maebe
84cefb5eba * fixed dynamic linking of programs that only link with libc after r13584
git-svn-id: trunk@13587 -
2009-08-23 16:05:59 +00:00
marco
f2883ac9ed * small fix for argument parsing by Joao Morais (via maillist)
git-svn-id: trunk@13586 -
2009-08-23 14:24:05 +00:00
Legolas
3f9327d340 * NDS: updated the rtl, libnds and fixed the examples. Now it should work fine with devkitARM r26
- Removed (again) old libgba examples

git-svn-id: trunk@13585 -
2009-08-23 13:57:45 +00:00
Jonas Maebe
9a84dee059 * fixed static linking under Linux for ppc64; test still crashes under
linux/i386 and linux/x86_64 (but at least it links now, mantis #14265)

git-svn-id: trunk@13584 -
2009-08-23 11:53:00 +00:00
Jonas Maebe
c2c68ddb8f - removed FPC_NEW_BIGENDIAN_SETS define and if(n)defs
* left old cpu-specific set helper code under ifdef FPC_OLD_BIGENDIAN_SETS
    in case someone wants to write new assembler set helpers (although most
    of them should be optimally generated by the compiler already if
    http://wiki.freepascal.org/FPC_HowToDo#Bit.28field.29_getting.2Fsetting_primitives
    are optimally implemented)

git-svn-id: trunk@13582 -
2009-08-23 08:16:40 +00:00
Jonas Maebe
0eec337a00 - removed SUPPORT_UNALIGNED, FPC_SUPPORTS_UNALIGNED and FPC_UNALIGNED_FIXED
defines and ifdefs (already all defined by 2.2.4)

git-svn-id: trunk@13581 -
2009-08-23 07:51:26 +00:00
Jonas Maebe
a64c5a7b23 * fixed bug that sporadically caused the column of certain nodes to
change, resulting in slightly different DWARF debug information
    (mantis #13508)

    The cause was saving a node pointer in a local variable, processing
    it further, and later on checking whether it changed by comparing
    the stored and the current instance pointer. The problem was that
    the node could have been freed and reallocated at the same address
    (but with different contents), so this check sometimes resulted
    in (hard to reproduce) false negatives.

git-svn-id: trunk@13580 -
2009-08-22 22:15:27 +00:00