Commit Graph

30641 Commits

Author SHA1 Message Date
marco
82b9749e71 * thread creation failure for win<x>. Mantis 13798
git-svn-id: trunk@13188 -
2009-05-23 15:40:13 +00:00
Jonas Maebe
c40d6cca8b + Darwin-specific fcntl constants
git-svn-id: trunk@13186 -
2009-05-23 10:10:56 +00:00
sergei
733d2c38d5 dom.pp: Customized memory management, fixes 17 test cases and all memory leaks in testsuite:
* Every node created by Document.CreateXXX method is now guaranteed to be destroyed with the
  document, whether it is part of the tree or not. Therefore, DOM methods which remove nodes
  from the tree (namely, TDOMNode.RemoveChild, TDOMNode.ReplaceChild,
  TDOMElement.SetAttributeNode and TDOMElement.SetAttributeNodeNS) no longer need to destroy
  their return value and are now conformant to the specs.
* Nodes are allocated in arrays of instances (emulates 'placement new operator' in C++ terms).
  Allocation and freeing are as fast as possible (just assigns a couple of pointers).
* Behaviour of nodes that are created by direct call to constructor is unchanged.

git-svn-id: trunk@13185 -
2009-05-21 23:07:32 +00:00
sergei
d3dd0d6aa0 dom.pp: Added node memory management code (pure addition, no functionality changes this time).
git-svn-id: trunk@13184 -
2009-05-21 20:45:16 +00:00
marco
8fe555afca * some minor vista/w7 related updates to message numbers
git-svn-id: trunk@13183 -
2009-05-21 14:11:16 +00:00
marco
ec364a66e8 * win64 compatibility fix from Vincent. TLibHandle is now equal to system.thandle
git-svn-id: trunk@13182 -
2009-05-21 11:26:54 +00:00
Jonas Maebe
ee69d00bec - unconditionally enabled {$ifdef PARAOUTFILE}-code (that define was
decomissioned quite a while ago, but this file was forgotten in
    that process)

git-svn-id: trunk@13181 -
2009-05-21 09:57:45 +00:00
sergei
035fe43b72 Final strike for #13605:
src/dom.pp:
* GetElementsByTagName[NS] results now get cached in a hashtable. Repeated calls to
  GetElementsByTagName with same arguments return the same instance of NodeList. All NodeLists
  created during document lifetime are destroyed with the document.

src/xmlutils.pp:
* THashTable.Lookup(), changed SetString to SetLength+Move because SetString truncates on #0
+ added THashTable.RemoveData() method

tests/api.xml:
- No longer need to 'garbage collect' the NodeLists.

git-svn-id: trunk@13180 -
2009-05-20 23:08:24 +00:00
sergei
17bbe72d08 * Moved TDOMAttrDef class from xmlread.pp to dom.pp (in order to implement default attribute handling at DOM level).
* Using regular CloneNode() method to create copies of TDOMAttrDef.

git-svn-id: trunk@13176 -
2009-05-18 22:03:37 +00:00
sergei
0a242ba49f dom.pp: Ignore node read-only property when its owning document is being destroyed (enables destroying nodes in arbitrary order).
git-svn-id: trunk@13175 -
2009-05-18 20:33:43 +00:00
sergei
6049600ccb DOM test suite enhancements:
* Do not convert tests which request implementation attribute 'signed'='true'.
  Such tests aren't applicable to our unsigned DOM, they only cause compiler warnings
  and noise in the test report.
+ Support for default properties (obj.item(x) -> obj[x]).
+ Support black-listing of testcases. Some of them (in HTML testsuite) are easier to
  rewrite by hand than to convert.
+ Support adding certain units to 'uses' clause (e.g. HTML suite must use dom_html).

git-svn-id: trunk@13172 -
2009-05-17 22:56:51 +00:00
marco
501f20c546 * reversed destruction order of TFPObjectList as per Mantis 13715.
Note that it is _NOT_ good coding to rely on such things

git-svn-id: trunk@13168 -
2009-05-17 17:09:26 +00:00
Jonas Maebe
3d771a7d39 * when loading the functions for a particular OpenGL function, also
automatically load those for lower versions (patch by "satan", mantis
    #13687)

git-svn-id: trunk@13167 -
2009-05-17 16:01:13 +00:00
marco
b5985d7e7c * gtk_cell_renderer_combo_new returns gtkcellrenderer not -combo (mantis 13689),
probably to support some kind of procedural polymorphism.

git-svn-id: trunk@13166 -
2009-05-17 15:37:27 +00:00
Jonas Maebe
bbfd8812c9 * small fixes from Karl-Michael Schindler (mantis #13048)
git-svn-id: trunk@13165 -
2009-05-17 14:50:44 +00:00
Jonas Maebe
84cdb246fa * copyright in comments updated (from mantis #13048)
git-svn-id: trunk@13164 -
2009-05-17 14:42:17 +00:00
Jonas Maebe
b59d1f724b * support {$i *.ext} to include source files with the same base name, but
with a different extension than the current source file (mantis #13696)

git-svn-id: trunk@13163 -
2009-05-17 14:33:20 +00:00
yury
9a0808d0fb * Set default image base for win64 dlls to $110000000.
git-svn-id: trunk@13160 -
2009-05-17 12:47:26 +00:00
yury
bf00b3e94b * Replaced some ifdef x86_64 by ifdef cpu64bitaddr, since it is more correct.
git-svn-id: trunk@13159 -
2009-05-17 12:43:58 +00:00
marco
c0aa309cde * Fix for gdb66/mingw (general?) program reset issue. Instructs GDB to turn confirmation off. Mantis 0011968
git-svn-id: trunk@13158 -
2009-05-17 12:43:57 +00:00
marco
39afd88425 * mingw textmode IDE debugging support. First working version (for me), atexit handler for mingw and cygwin stuff under ifndef USE_MINGW_GDB
git-svn-id: trunk@13157 -
2009-05-17 12:22:41 +00:00
Jonas Maebe
4106ce540f * fixed compilation with -Cr after r13147
* changed type of minstacksize, maxstacksize and imagebase from aword
    (= size of integer registers of the target platform) into puint
    (= size of address space of target platform)

git-svn-id: trunk@13155 -
2009-05-17 10:07:54 +00:00
mazen
f7ec6481cf * Source code and XLM files could not be executable.
git-svn-id: trunk@13154 -
2009-05-16 13:15:48 +00:00
marco
55bf970d0b * small mingw related fixes.
git-svn-id: trunk@13153 -
2009-05-16 12:00:51 +00:00
Jonas Maebe
3a8b29be91 + test conversion from class to differently sized enum and to differently
sized integer (succeed for Delphi, fail for objfpc)
  * fixed compiler so it only allows typecasting a class/interface to a
    differently sized integer in Delphi mode

git-svn-id: trunk@13152 -
2009-05-16 11:07:09 +00:00
Jonas Maebe
47c28c2db3 * pass -no_dead_strip_inits_and_terms to the linker, since we use these for
dynamic library initialization (this automatically enables dead code
    stripping/smart linking in all cases though, independent of -XX/CX;
    on the other hand, there is no real reason not to use it anymore on
    Mac OS X, since support was introduced in Xcode 1.5 for
    Mac OS X 10.3.9 and that's also the earliest version we support
    for running FPC on)

git-svn-id: trunk@13151 -
2009-05-16 10:42:23 +00:00
Jonas Maebe
d3cec25dce * small indentation fix
git-svn-id: trunk@13150 -
2009-05-16 10:31:35 +00:00
Jonas Maebe
ea356808b1 * tests have to fail
* "fixed" tests so they also fail on 32 bit platforms

git-svn-id: trunk@13149 -
2009-05-16 10:30:28 +00:00
yury
726764be0b * This test must be run on lower 4Gb of address space. Explicitly set image base on Windows.
git-svn-id: trunk@13148 -
2009-05-15 23:15:14 +00:00
yury
78b2618db6 * Fixed setting of image base using {$IMAGEBASE X} directive.
* Cleanup of relative code.

git-svn-id: trunk@13147 -
2009-05-15 23:12:02 +00:00
yury
ede93974bc * Fixed writing of external debug info when reloc section should be created.
git-svn-id: trunk@13146 -
2009-05-15 22:30:52 +00:00
yury
628b0c23ac * exeinfo: Return executable image base and current module base address on Windows.
* exeinfo: Properly handle long COFF section names. Bug #13499.
* lineinfo, lnfodwrf: Properly use executable image base and current module base address.

git-svn-id: trunk@13145 -
2009-05-15 22:14:09 +00:00
sergei
66c0840bce * TDOMText.SplitText should check that its argument isn't readonly before doing anything else.
Since the procedure still raises NO_MODIFICATION_ERR later (while inserting new node to the parent),
the testsuite wasn't able to detect this bug, causing the old node to be modified and the new node to leak :/

git-svn-id: trunk@13144 -
2009-05-15 13:30:31 +00:00
sergei
54b475a68b dom.pp:
* Partial fix for #13605 (fixes the issue as reported, but a fix for nodelists returned by
  GetElementsByTagName[NS] is also needed):
  - Each node which can have children has an associated instance of TDOMNodeList;
  - Other nodes are substituted by special 'null' node, having an empty child list;
  - Muiltiple calls to ChildNodes return the same instance of TDOMNodeList;
  - Calling Free on result of ChildNodes is optional; if not freed, it will be destroyed with
    the owning node.

tests/domunit.pp:
* Changed TFPObjectList to TObjectList, which has been found to destroy its elements in opposite
 order (reported as #13715). As NodeLists became owned by Document, old (FIFO) destruction order is
 causing their double destruction.

git-svn-id: trunk@13143 -
2009-05-14 21:00:29 +00:00
yury
187a145358 * Fixed build for ARM targets.
git-svn-id: trunk@13142 -
2009-05-14 08:47:18 +00:00
yury
c6253d5bd7 * Added missing override directive in trgcpu.add_constraints method for x86_64 CPU. It was missing for years and I am not sure that this code is really needed. Please review.
git-svn-id: trunk@13141 -
2009-05-13 11:37:09 +00:00
yury
41d50e4723 * Fixed dead code warning.
git-svn-id: trunk@13140 -
2009-05-13 11:27:48 +00:00
yury
f726e1691b * Fixed warnings and notes.
git-svn-id: trunk@13139 -
2009-05-13 11:26:01 +00:00
yury
e23a304254 * Set default images base to $100000000 for win64 executables as done by MS linkers. It helps to detect portability errors early.
git-svn-id: trunk@13138 -
2009-05-13 10:56:33 +00:00
yury
bba2b87064 * Use RIP relative symbol addressing in assembler blocks. Finally bug #13657 is fixed.
git-svn-id: trunk@13137 -
2009-05-13 10:45:54 +00:00
yury
82ad6b4de9 * Define FPC_HAS_RIP_RELATIVE to indicate that x86_64 internal assembler supports RIP relative symbol addressing.
git-svn-id: trunk@13136 -
2009-05-13 10:44:01 +00:00
yury
92ad06f1e8 * Always use RIP relative symbol addressing for x86_64 Windows targets. Bug #13657.
* Support for simple form of RIP relative addressing by x86_64 assembler writer. Example: movl rax,SomeSymbol(%rip)

git-svn-id: trunk@13135 -
2009-05-13 10:07:44 +00:00
sergei
4eef2b87a1 dom.pp: Moved creation of all TDOMNodeList's to TDOMDocument (another part of #13605).
git-svn-id: trunk@13134 -
2009-05-12 19:46:42 +00:00
Jonas Maebe
a24db8854c * fixed return value of InterlockedCompareExchange(64) for ppc/ppc64,
bug exposed by tw13281

git-svn-id: trunk@13133 -
2009-05-11 07:26:48 +00:00
joost
5ddddf60ae * Patch from Ladislav Karrach, in some cases SQLExecute returns SQL_NO_DATA when no error occured, bug #13654 + test
git-svn-id: trunk@13132 -
2009-05-10 20:30:01 +00:00
marco
6eeab240ba * preparation for mingw debug info, Mantis 11968 as researched by Mario Mahardhika
git-svn-id: trunk@13131 -
2009-05-10 19:54:43 +00:00
sergei
448b621ff4 xpath.pp: A slightly more efficient implementation of TXPathCompareNode.Evaluate().
git-svn-id: trunk@13130 -
2009-05-10 19:38:32 +00:00
sergei
7a478e64c2 xpath.pp: Honor axis direction when filtering step result with predicates. For reverse axes, ContextPosition is now relative to the last node of the set. The third argument of TXPathExprNode.EvalPredicate() is redundant and has been removed.
git-svn-id: trunk@13129 -
2009-05-10 19:32:22 +00:00
marco
828afdf74c * close socket if not accepted. Patch from Mantis 12675 by S. Meyer.
git-svn-id: trunk@13128 -
2009-05-10 16:08:46 +00:00
Jonas Maebe
b77bff2996 + cardinal/qword overloads for interlocked* routines (mantis #13281)
git-svn-id: trunk@13127 -
2009-05-10 15:22:38 +00:00