Commit Graph

48493 Commits

Author SHA1 Message Date
michael
591f3dc879 * Fix bug #29989, add compression and JPEG image support (by Ondrej Pokorny)
git-svn-id: trunk@33484 -
2016-04-11 19:07:27 +00:00
michael
b46969cfa8 * Several improvements in PDF generator:
- Removed TTextDictionary class.
 - adds code comments and fixes a spelling mistake.
 - Removes TFontDef definition - we don't need it any more.
 - refactored TPDFDocument Text API to overloaded methods CreateText()
 - test: update test project to reflect the latest API changes.
 - unittests: update tests to match recent API changes.

git-svn-id: trunk@33483 -
2016-04-11 18:27:34 +00:00
michael
b30a809fdd * Added ttfdump tool
git-svn-id: trunk@33482 -
2016-04-11 18:26:23 +00:00
Károly Balogh
2e398fa8f7 * disabled powerpc-amiga target for packages where it doesn't build (yet), so make all works
git-svn-id: trunk@33481 -
2016-04-10 21:52:33 +00:00
Jonas Maebe
08d63e3408 * allow default parameters for constref (mantis #29992)
git-svn-id: trunk@33480 -
2016-04-10 21:27:29 +00:00
Jonas Maebe
953c47dd97 - disabled DWARF (a)ranges for Darwin, it's not supported/used there
git-svn-id: trunk@33479 -
2016-04-10 21:16:55 +00:00
florian
71b7cd7e1d * the size of DW_FORM_ref_addr entries depends on the DWARF version
git-svn-id: trunk@33477 -
2016-04-10 19:46:05 +00:00
Károly Balogh
2e64db935a m68k: BSET and BCLR's dest operand is actually readwrite, not write only. fixes sets with regvars, when the regvar is spilled
git-svn-id: trunk@33476 -
2016-04-10 18:56:51 +00:00
michael
4b54a82678 * Implement ImageSize in Read handler (Patch by Ondrej Pokorny, bug ID #29988)
git-svn-id: trunk@33474 -
2016-04-10 16:05:50 +00:00
michael
2d52f18152 * Patch from Ondrej Pokorny to implement and use TFPCustomImage.FindHandlerFromExtension
git-svn-id: trunk@33473 -
2016-04-10 15:57:59 +00:00
michael
3b2770854a * Remove unneeded raising of exception
git-svn-id: trunk@33472 -
2016-04-10 15:52:31 +00:00
michael
65e901c844 * Fix foe 29990
git-svn-id: trunk@33471 -
2016-04-10 13:23:30 +00:00
florian
a7346b2f9d + make use of .debug_aranges section for faster name search when generating stack backtraces
git-svn-id: trunk@33470 -
2016-04-10 12:21:35 +00:00
michael
fb87b6bc9c * Patch from Ondrej Pokorny (bug ID 29987)
- utf8string-aware TFPFontCacheItem.TextWidth (utf16 surrogate pairs aren't supported though)
  - Cached result for TFPFontCacheItem.GetFontData. 
  - Fix for range check error in TTFFileInfo.PrepareFontDefinition.

git-svn-id: trunk@33468 -
2016-04-10 10:32:54 +00:00
michael
b7a76bd3ab * Ondrejs fix for resetting stream is now redundant
git-svn-id: trunk@33467 -
2016-04-10 09:19:35 +00:00
michael
2d68132812 * Reset position after internalcheck
git-svn-id: trunk@33466 -
2016-04-10 07:04:21 +00:00
michael
1ef0ce2d92 * Implement InternalCheck (By Ondrey Pokorny, Bug ID #29985)
git-svn-id: trunk@33465 -
2016-04-10 06:53:20 +00:00
michael
12f11284bf * Record and reuse start position after checkcontents (Ondrey Pokorny, bug ID #29985)
git-svn-id: trunk@33464 -
2016-04-10 06:51:38 +00:00
Tomas Hajny
84fcab3fef * notify unit video of switching consoles under windows
git-svn-id: trunk@33463 -
2016-04-10 01:44:29 +00:00
Tomas Hajny
29cf2c9ed7 * avoid division by zero if no screen information is available on startup
git-svn-id: trunk@33462 -
2016-04-10 01:42:53 +00:00
Tomas Hajny
837b4bcff9 * allow working with console even if std output is redirected, add possibility of changing the console handle (needed for IDE or other programs switching consoles)
git-svn-id: trunk@33461 -
2016-04-10 01:41:32 +00:00
Tomas Hajny
92d045c483 * GetStdHandle returns a THandle (use of longint was not 64-bit safe)
git-svn-id: trunk@33460 -
2016-04-10 01:26:30 +00:00
Károly Balogh
d58d71666d * fixed build on architectures with cpufpuemu defined (like m68k)
git-svn-id: trunk@33459 -
2016-04-09 20:09:14 +00:00
Károly Balogh
0e41519516 * fixed powerpc build
git-svn-id: trunk@33457 -
2016-04-09 12:38:19 +00:00
michael
1a4dd1b9b2 * Fixed typo in russian message (Ondrej Pokorny)
git-svn-id: trunk@33456 -
2016-04-09 08:40:01 +00:00
Károly Balogh
4ed3a3f09a * re-read the libbase already pushed on the stack for AROS syscalls, instead of trying to re-resolve it. should fix threadvar libbases on AROS.
git-svn-id: trunk@33455 -
2016-04-08 22:42:29 +00:00
florian
90b284e169 + generate .debug_aranges sections for dwarf debug info: enables faster address to debug info translation
git-svn-id: trunk@33454 -
2016-04-08 20:19:59 +00:00
michael
897547b115 * More fixes from Graeme, hopefully UTF16 works now fully
git-svn-id: trunk@33453 -
2016-04-08 18:16:46 +00:00
svenbarth
f8e9b33f99 Merge first batch of package handling related revisions from the packages branch
Merged revision(s) 28796, 28837-28845, 28847-28850, 28852, 32135 from branches/svenbarth/packages:
Provide possibility to pass packages and search paths for packages as parameters.

fpkg.pas:
  + new unit which contains the base types related to package files (most importantly "tpackage")
globals.pas:
  + new variable "packagesearchpath" which contains all paths in which package files should be looked for
  + new variable "packagelist" which contains a list of all packages that should be used in a program or library
  * InitGlobals & DoneGlobals: initialize/finalize "packagesearchpath" accordingly ("packagelist" is handled in unit fpkg using a init/done-callback)
options.pas:
  + TOption: new fields "parapackagepath" and "parapackages" to keep track of package search paths and package files passed as parameters
  * TOption.interpret_option: use '-Fp' for package search paths and '-FP' for package files
  * read_arguments: apply the passed package search paths and packages to their respective containers
........
+ add a new unit which will contain basic functions related to handling packages
........
Move package related functions from pmodules to pkgutil.

pmodules.pas => pkgutil.pas:
  * createimportlibfromexports
  * varexport
  * procexport
  * insert_export
  * RewritePPU
........
* adjust indentation
........
Extract the code to export the symbols of a unit to its own function in pkgutil so that less functions need to be exported.

pmodules.pas, proc_package:
  * move code to export the symbols of a unit to new function export_unit
pkgutil.pas:
  + new function export_unit
  - remove exports of procexport, varexport and insert_export
........
Some small fixes for package parsing.

pmodules.pas, proc_package:
  * use orgpattern instead of pattern to build the module name (like is done in uses sections)
  * ignore duplicates when generating exports
  - no need to generate an import library for the package; that is done by the program/library that uses the package
........
+ new unit fpcp of which the class tpcppackage handles the reading and writing of package metadata from/to pcp files (equivalant to tppumodule).
........
+ add unit which contains representation of a PCP file (tpcpfile) like tppufile is for units.
........
Improve export generation.

pkgutil.pas:
  + new function exportprocsym to correctly export a procedure with all its aliases
  + new function exportabstractrecordsymproc to export the members of structured types 
  * insert_export: handle also namespacesym and propertsym (by ignoring them)
  * insert_export: correctly export classes, record and objects
  * insert_export: use new exportprocsym function to export a procsym
  * insert_export: only export public variables of a static symtable


........
+ add entry constants for the name of the package and the package file names, both used by a PCP file
........
* use messages to get rid of most writelns related to package loading
........
Add additional entry types for PCP files

entfile.pas:
  + new entries ibstartrequireds and ibendrequireds to store the list of required packages
  + new entries ibstartcontained and ibendcontained to store the list of contained units
  + new entries ibstartppus and ibendppus to store the list of contained PPU files
........
Generate the PCP file once the package file and the used units were compiled correctly.

pmodules.pas:
  * proc_package: generate the PCP file upon successful compilation
........
Add the possibility to load all packages supplied as parameters.

pkgutil.pas:
  + new function load_packages to load all packages supplied as parameters
pmodules.pas, proc_program:
  * use load_packages to load all packages before any unit is loaded
........
Add code which tries to load a unit from a package first and only then as usual.

fppu.pas, tppumodule:
  + new method loadfrompackage which searches all available packages for the unit and loads it from there if found
  * loadppu: first try to load the unit from a package if any are available
........
Don't link objects files of a unit that is provided by a package.

pmodules.pas, proc_program:
  * if a unit has uf_in_library set we must not include it in the units we link against
........

git-svn-id: trunk@33452 -
2016-04-08 15:40:27 +00:00
svenbarth
0f9e556c80 * regenerate message files after r33450
git-svn-id: trunk@33451 -
2016-04-08 14:57:08 +00:00
svenbarth
cde95b0e4a Merge all message related changes from the package branch
Merged revision(s) 29015, 29036, 31989, 32132-32133, 32306, 32478, 32513 from branches/svenbarth/packages:
Start to use package related messages
........
+ add a error message for specifying a package multiple times

........
msg/errore.msg:
  + add additional messages for implicitely imported units and units that must not be part of a package
........
* fix name of section for package related messages
+ add missing EndOfTex tag
........
+ add more package loading related messages
........
errore.msg:
  + new message that a PPU is loaded from a package
........
+ new message for when a unit is listed in the contains section that is already part of another package

........
msg/errore.msg:
  + new message when a unit from an indirectly referenced package is used

........

git-svn-id: trunk@33450 -
2016-04-08 14:56:20 +00:00
svenbarth
5be046d8dc Consider the revisions for indirectly loading global variables as merged.
Merged revision(s) 28642-28688 from branches/svenbarth/packages:
Generate indirect symbols for global variables and load them indirectly when necessary.

ptconst.pas, read_typed_const:
  * generate an indirect symbol for the const data using the indirect_suffix constant
ngenutil.pas, tnodeutils.insertbssdata:
  * generate an indirect symbol for the uninitialized data using the indirect_suffix constant
ncgld.pas, tcgloadnode.pass_generate_code:
  * load static variables indirectly if the following conditions are true:
      - the target supports packages (otherwise this is a waste of cycles)
      - the variable is not external
      - IMPORTEDDATA is active
      - the variable is loaded from a different unit
........
Forgot a variable declaration
........

git-svn-id: trunk@33449 -
2016-04-08 14:24:12 +00:00
svenbarth
9857a27ad8 Generate and use an indirect symbol for VMTs.
Note: the merged code has been adjusted to a) use the typed constant builder and b) to not use the indirect symbol when its not necessary (non-Windows or same unit)

Merged revision(s) 28340, 28350 from branches/svenbarth/packages:
Generate an indirect VMT symbol for each generated VMT.

ncgvmt.pas, TVMTWriter:
  * writevmt: write a symbol with the indirect VMT name that references the direct VMT symbol
........
Load the VMT using the indirect symbol if the target supports packages.

ncgmem.pas, tcgloadvmtaddrnode:
  * pass_generate_code: if tf_supports_packages is set in target_info.flags we load the VMT using the indirect symbol, otherwise we load it using the direct symbol

........

git-svn-id: trunk@33448 -
2016-04-08 14:21:51 +00:00
svenbarth
140f5b5f94 Write indirect symbols for the RTTI (basically a merge of r28238, but using the typed constant builder and the new indirect asmbinds)
ncgrtti.pas, TRTTIWriter:
  * write_rtti & write_rtti_extrasyms: generate an indirect symbol for each of the RTTI symbols (they are not used yet, but soon will be)
  * write_rtti: reorder operations a bit: first free the tcb (we don't need it anymore), then write the indirect symbol and only then write any extra symbols that might be needed (this way the RTTI data and the indirect symbol will be next to each other)
  

git-svn-id: trunk@33447 -
2016-04-08 13:39:04 +00:00
Károly Balogh
4e964c2ed7 m68k: rewrote fixref and a_load_ref_ref, fixing a bunch of problems on ColdFire, unifying and simplifying the code a lot, and hopefully not killing anything in the process
git-svn-id: trunk@33446 -
2016-04-08 03:27:19 +00:00
Károly Balogh
96fe4313dd m68k: fixed spilling code interfering with some ADDQ/SUBQ/MOV3Q instructions, fixes paszlib failing since r32830
git-svn-id: trunk@33445 -
2016-04-08 03:21:09 +00:00
yury
a934312e4f * pas2jni: Minor fix to exe extension.
git-svn-id: trunk@33436 -
2016-04-07 13:17:46 +00:00
yury
288f7285a3 * pas2jni: Fixed exit code.
git-svn-id: trunk@33435 -
2016-04-07 13:08:47 +00:00
marco
39f1244041 * fix mantis #29970
git-svn-id: trunk@33432 -
2016-04-07 09:30:03 +00:00
michael
438995b249 * Fix some hints
git-svn-id: trunk@33431 -
2016-04-06 21:26:15 +00:00
Legolas
3f80e9e221 * libndsfpc updated to ver. 1.5.12
git-svn-id: trunk@33429 -
2016-04-06 19:13:31 +00:00
michael
3c9f25c987 * Some Fixes/Improvements from Graeme
git-svn-id: trunk@33428 -
2016-04-06 17:22:37 +00:00
lacak
e75cc6626b fcl-db: bufdataset: cosmetic (remove unused/unneeded parts of code)
git-svn-id: trunk@33427 -
2016-04-06 06:05:00 +00:00
marco
71386f02cd * another msgtyp
git-svn-id: trunk@33424 -
2016-04-05 11:04:28 +00:00
lacak
8833c043b3 fcl-db: bufdataset: reimplement re-linking of records in update buffer.
Do not store NextBookmarkData during insertion, but determine next record of reverted record during cancel update

git-svn-id: trunk@33422 -
2016-04-04 12:44:49 +00:00
lacak
a820b5997b fcl-db: bufdataset: efficient implementation of SameBookmarks method
git-svn-id: trunk@33421 -
2016-04-04 11:32:18 +00:00
lacak
68f626f725 fcl-db: bufdataset: implement RevertRecord method for canceling one record cached update.
(There might be problem in special cases when data are saved/restored)

git-svn-id: trunk@33420 -
2016-04-04 11:24:09 +00:00
sergei
f73b3c6e4b * Also assign the ErrorCode variable, which is being checked by some tests like test/tstack.pp.
git-svn-id: trunk@33419 -
2016-04-03 22:26:10 +00:00
florian
406e3c4ac1 + support xgetbv instruction, resolves issue #29958
git-svn-id: trunk@33418 -
2016-04-03 20:53:10 +00:00
Jonas Maebe
1e1b36515e * don't narrow expressions that contain a mod/div followed by an "and",
since the mod/div get a different result if calculated using fewer
    bits (mantis #29930)

git-svn-id: trunk@33413 -
2016-04-02 22:09:34 +00:00