Commit graph

45 commits

Author SHA1 Message Date
gambas
168b00a5d5 AvlTree: Clearing the tree now correctly frees all nodes.
[GB.DATA]
* BUG: AvlTree: Clearing the tree now correctly frees all nodes.
2021-11-05 20:11:24 +01:00
gambas
d5c59c123c Change the GB_FUNCTION structure so that it stores the index of the method instead of its description pointer.
[INTERPRETER]
* NEW: Change the GB_FUNCTION structure so that it stores the index of the method instead of its description pointer.

[GB.DATA]
* OPT: The new GB_FUNCTION structure allows to reduce the size of the GRAPH_DESC structure.
2021-03-07 23:51:12 +01:00
Laurent Carlier
f1deb8e330 Remove register keyword, deprecated, now reserved keyword with C++17
Fixes "warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]"
with clang

https://en.cppreference.com/w/cpp/keyword/register
2019-10-30 06:53:09 +00:00
gambas
46f21a7f7b Strip png files with ImageMagick convert command. 2018-09-19 20:53:00 +02:00
gambas
900fee66d5 Update many project configuration files. 2018-03-16 14:13:21 +01:00
gambas
09a0573e61 Replace my old sourceforge mail address by the new one.
[CONFIGURATION]
Replace my old sourceforge mail address by the new one.
2018-02-12 02:53:46 +01:00
Benoît Minisini
b225eba20f [CONFIGURATION]
* NEW: Update copyright year in all source files.


git-svn-id: svn://localhost/gambas/trunk@8056 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-13 03:29:42 +00:00
Benoît Minisini
bf7e0659bd [WIKI]
* NEW: Take '*.help' help files into account.

[GB.DATA]
* NEW: Disable the help file generation from sources. It is useless for
  normal users.


git-svn-id: svn://localhost/gambas/trunk@6834 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-01-13 20:01:40 +00:00
Benoît Minisini
61e61e2dfa [HELP EXTRACTOR]
* NEW: Analyze the source files without 'gb.pcre'.

[GB.DATA]
* NEW: Activate help extraction from source files.


git-svn-id: svn://localhost/gambas/trunk@6831 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-01-12 20:04:33 +00:00
Benoît Minisini
d050bcab25 [CONFIGURATION]
* NEW: Modify the installation process so that it will be able to run the 
  'gbh3' tool to extract help from component source files. Not usable yet
  as long as 'gbh3' depends on 'gb.pcre'.

[HELP EXTRACTOR]
* NEW: Move 'gbh3' project from '/app/src' to '/main/tools'.
* NEW: Add new options that are needed by the installation process.


git-svn-id: svn://localhost/gambas/trunk@6829 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-01-11 23:41:41 +00:00
Tobias Boege
0e069f3d04 [GB.DATA]
* BUG: GraphMatrix: Multiple simultaneous enumerations are possible now.



git-svn-id: svn://localhost/gambas/trunk@6807 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-01-04 18:32:33 +00:00
Tobias Boege
4c704fd2d5 [GB.DATA]
* BUG: GraphMatrix.Add() does not add identical vertices multiple times
  anymore.



git-svn-id: svn://localhost/gambas/trunk@6752 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-12-19 17:57:18 +00:00
Tobias Boege
fcf84aebfc [GB.DATA]
* BUG: Graph: Add the Weight property to the edge interface.



git-svn-id: svn://localhost/gambas/trunk@6731 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-12-13 13:27:33 +00:00
Tobias Boege
4333eb8046 [GB.DATA]
* BUG: Trie: Fix a memory leak when an object is replaced



git-svn-id: svn://localhost/gambas/trunk@6701 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-12-01 22:39:28 +00:00
Tobias Boege
182b46c308 [GB.DATA]
* NEW: Trie: New Add() and Remove() cosmetic methods.



git-svn-id: svn://localhost/gambas/trunk@6699 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-12-01 16:31:30 +00:00
Tobias Boege
bf997fb0f3 [GB.DATA]
* BUG: Trie: Use sufficient bit widths in numerical constants (could cause
  data loss on 32 bit systems).
* BUG: TriePrefix: Don't drop reference counts of the Trie when the prefix
  is not found.



git-svn-id: svn://localhost/gambas/trunk@6688 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-11-29 18:55:41 +00:00
Benoît Minisini
b887ad9b70 [CONFIGURATION]
* NEW: Update versions in Gambas projects.
* BUG: Remove some '.gambas' directories that must not be under version 
  control.

[DEVELOPMENT ENVIRONMENT]
* NEW: Update the offline help to the new wiki look.
* NEW: Rename the CRecentFile class as CRecentProject.

[WIKI CGI SCRIPT]
* NEW: Some little changes in the look.

[GB.FORM]
* BUG: SwitchButton: Remove a debugging message.

[GB.MARKDOWN]
* BUG: Remove the useless Markdown.Root property.


git-svn-id: svn://localhost/gambas/trunk@6638 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-11-11 15:36:40 +00:00
Tobias Boege
59da5f36f0 [GB.DATA]
* BUG: Don't use forward typedefs as some compilers don't seem to
  understand them.
* BUG: Silence false positive compiler warnings.



git-svn-id: svn://localhost/gambas/trunk@6607 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-11-03 08:55:24 +00:00
Benoît Minisini
c6d37cf4b8 [DEVELOPMENT ENVIRONMENT]
* NEW: Use the FontBox control in the option dialog.

[WIKI CGI SCRIPT]
* NEW: Add a preview button in editing mode.

[GB.DB]
* NEW: Database driver now have a flag to tell if they support collation or 
  not.

[GB.DB.POSTGRESQL]
* BUG: Use collation only if database version is greater or equal than 9.1.

[GB.FORM]
* NEW: Little design changes in the FontChooser control.
* BUG: Fix the FontBox control.
* NEW: FontBox.Default is a new property that defines which text is 
  displayed in the control when no font is set. By default, the application 
  default font name is used.

[GB.FORM.DIALOG]
* NEW: Add a custom font chooser dialog for Dialog.SelectFont().


git-svn-id: svn://localhost/gambas/trunk@6520 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-10-07 00:01:13 +00:00
Tobias Boege
2d81f8dff0 [GB.DATA]
* BUG: The 256 values of an input byte were mapped to just 128 bits of the
  trie children mask, so corruption could have happened with non-ASCII keys.
* BUG: Add a special case when using GB.AddString() on an empty key
* BUG: Fix a memory error from Trie.Complete()'s return value
* OPT: Use the Gambas API in trie.c to manage memory and thus remove error
  recovery since the interpreter will crash anyway
* OPT: Remove checks for "unsupported" characters as all 256 values of a
  byte are supported in this version of the code



git-svn-id: svn://localhost/gambas/trunk@6515 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-09-28 20:01:52 +00:00
Tobias Boege
c237307fff [GB.DATA]
* BUG: Trie: Fix Complete() method where the completion would be empty
  and a memory leak there



git-svn-id: svn://localhost/gambas/trunk@6507 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-09-23 19:37:58 +00:00
Tobias Boege
87c0ee3b3a [GB.DATA]
* NEW: Trie and TriePrefix are new classes which implement a Patricia Trie



git-svn-id: svn://localhost/gambas/trunk@6506 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-09-23 19:15:25 +00:00
Tobias Boege
77ecdfeae5 [GB.DATA]
* NEW: Heap: Change the way objects are identified in Update.
* NEW: gb.data has a part written in Gambas now.
* NEW: PrioSet is a weaker (WRT ordering) variant of a PrioQueue which
  allows operations to be reasonably more efficient.



git-svn-id: svn://localhost/gambas/trunk@6472 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-09-14 00:18:58 +00:00
Tobias Boege
3a6db0ec55 [GB.DATA]
* NEW: Graph and GraphMatrix work now. Graph implementations in Gambas are
  as powerful as native ones.



git-svn-id: svn://localhost/gambas/trunk@6468 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-09-13 03:01:37 +00:00
Tobias Boege
309d854317 [GB.DATA]
* NEW: Tweak Graph interface (still not finished)
* NEW: Add a GraphMatrix class which represents a Graph in a (non-sparse)
  adjacency matrix (not working)



git-svn-id: svn://localhost/gambas/trunk@6451 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-09-05 19:12:06 +00:00
Tobias Boege
27007f708b [GB.DATA]
* NEW: Deque: Add a Copy() method to return a deep copy of a Deque. Stack
  and Queue "inherit" this method.



git-svn-id: svn://localhost/gambas/trunk@6407 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-07-29 11:26:46 +00:00
Tobias Boege
60e7c3e7ba [GB.DATA]
* NEW: Heap is a new class that implements a Min- or MaxHeap, depending upon
  a mode parameter to its constructor. It supports some advanced ways to
  manipulate the contained data -- beyond the first entry.



git-svn-id: svn://localhost/gambas/trunk@6402 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-07-28 03:34:24 +00:00
Tobias Boege
46ebc2acb4 [GB.DATA]
* NEW: First attempt to define a Graph class interface



git-svn-id: svn://localhost/gambas/trunk@6372 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-07-12 00:20:35 +00:00
Benoît Minisini
9326385a65 [GB.DATA]
* BUG: Fix 'Makefile.am' file.


git-svn-id: svn://localhost/gambas/trunk@5889 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-10-13 18:29:32 +00:00
Benoît Minisini
255fc160fe [GB.DATA]
* BUG: Fix incorrect Makefile.am file.

[GB.XML.HTML]
* BUG: Fix incorrect Makefile.am file.


git-svn-id: svn://localhost/gambas/trunk@5886 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-10-13 14:19:09 +00:00
Tobias Boege
a2756c284f [GB.DATA]
* BUG: List: Fix two false positive compiler warnings on some systems.
* BUG: AvlTree: Don't forward-declare a typedef. It bothers some compilers.
* BUG: Also update Key from AvlTree_get().
* BUG: Invalidate the enumerators in AvlTree.Clear()



git-svn-id: svn://localhost/gambas/trunk@5865 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-10-01 06:23:08 +00:00
Tobias Boege
902c13bcea [GB.DATA]
* NEW: Mark component as stable

[GB.OPENSSL]
* NEW: Mark component as stable



git-svn-id: svn://localhost/gambas/trunk@5825 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-09-01 18:53:24 +00:00
Tobias Boege
11d42882b5 [GB.DATA]
* NEW: Update copyright years.
* NEW: Have a stripped-down version of gb_common_string_temp.h to provide
  STRING_compare() without producing compilation problems.
* NEW: AvlTree is a new Collection-like class implementing a balanced
  binary search tree. It does _not_ utilise hashing in order to maintain
  an order of the literal key strings given by the user (For Each thus
  traverses from smallest to greatest key).
* NEW: Carry in a stripped-down version of Bob Jenkins' lookup3 hash
  algorithm from the Public Domain. It was a last-minute decision to not use
  it in AvlTree to maintain the literal key order.



git-svn-id: svn://localhost/gambas/trunk@5812 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-08-19 22:48:29 +00:00
Tobias Boege
33cf182cd0 [GB.DATA]
* BUG: Remove inclusion of c_avltree.h which is not yet versioned.



git-svn-id: svn://localhost/gambas/trunk@5782 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-08-10 08:22:34 +00:00
Tobias Boege
b4c71163ee [GB.DATA]
* BUG: Fix possible bugs when updating an invalid Current.
* BUG: Really erase old elements instead of just marking them as Null to
  prevent (potential) information leaks.
* OPT: Current and the enumerators (internally) carry list global indices
  (LGI) which can be used as anchor points together with List.Count to speed
  up traversals (always taking the shortest way through the list).
* OPT: Remove workaround code related to an enumerator bug fixed in #5749.
* NEW: Expose List.Current as a virtual object representing the current list
  element which has Append() and Prepend() methods to manipulate the list
  not only around its head. This breaks backwards compatibility.
* NEW: List.Value is what List.Current has meant formerly.
* NEW: Add List.Current.Index and List.Index which are an absolute index of
  the current element into the list. These are guaranteed to be in bounds of
  [-List.Count; List.Count - 1]. Note that each non-negative index has an
  associated negative equivalent and vice versa. They work like the indices
  given to List._get().
* NEW: Add a List.AutoNormalize property which instructs the list to
  automatically make indices (like resulting from a calculation) fit into
  the List bounds preserving the sign of the given index. This effectively
  prevents any "Out of bounds" errors.
* NEW: Add List.MoveTo() to point Current to an index.
* NEW: List.Current.Is{First,Last,Valid} can be used to determine if Current
  is the first or last element of the list or if it is valid, respectively.



git-svn-id: svn://localhost/gambas/trunk@5778 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-08-09 18:31:20 +00:00
Benoît Minisini
bd3410e80f [INTERPRETER]
* NEW: GB.ReturnSingle() is a new API that allows to return a Single from a 
  method or property implementation routine.

[GB.NET.POP3]
* NEW: Pop3Client has a new Remove() method to delete a message from its 
  index. Pop3Client.Remove(n) is just a synonymous for 
  Pop3Client[n].Delete.

[GB.OPENAL]
* NEW: New component for the OpenAL 3D audio library. Work in progress...

[GB.OPENGL]
* BUG: Fix a possible crash in GL.GenTextures(). I guess that bug will have 
  to be fixed in other equivalent routines.


git-svn-id: svn://localhost/gambas/trunk@5753 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-07-21 16:19:26 +00:00
Tobias Boege
4bc9b23c61 [GB.DATA]
* OPT: Shrink internal data structures and adjust algorithms likely
  improving performance (noticably for the 'random' case of my stress test -
  the 'best' case is almost on a par with Variant[] now).
* BUG: Fix difficult-to-spot List.Take() bugs due to difficulties with the
  former internal data structures. The class now survives all my test cases
  (without misbehaviour under valgrind).
* BUG: List.Take() never raises "Out of bounds" anymore if the list is empty
  because that's an inappropriate error for a *circular* list. It raises an
  error if an attempt is made to Take() an invalid Current which includes
  the case that the List is empty.



git-svn-id: svn://localhost/gambas/trunk@5731 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-07-13 08:53:49 +00:00
Tobias Boege
f347f30791 [GB.DATA]
* NEW: Fix memory leaks from Circular cleanup.



git-svn-id: svn://localhost/gambas/trunk@5670 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-05-21 13:09:29 +00:00
Tobias Boege
446ca03396 [GB.DATA]
* OPT: Remove unused function (reported by Coverity Scan/Emil Lenngren)



git-svn-id: svn://localhost/gambas/trunk@5491 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-01-05 14:28:37 +00:00
Tobias Boege
24386639bf [GB.DATA]
* NEW: Finish the List class
* NEW: Add List.Clear(). How could I go without since now?
* OPT: FYI, Current and enumerators remain relative to the _beginning_ of
  the list if they're removed in order to can access all elements in an
  enumeration.
* NEW: Return NULL for an invalid List.Current instead of raising an error.
  However, the attempt to remove an invalid Current still results in that
  error.



git-svn-id: svn://localhost/gambas/trunk@5403 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-11-30 20:34:11 +00:00
Tobias Boege
285cf7a578 [GB.DATA]
* BUG: Fix division by zero when read/write pointer is set on 0-length
  Circular (useless but legal).



git-svn-id: svn://localhost/gambas/trunk@5375 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-11-25 19:09:21 +00:00
Benoît Minisini
5d9a781017 [DEVELOPMENT ENVIRONMENT]
* BUG: Right mouse button can select controls again in form editor.

[GB.GTK]
* NEW: DragLeave is a new event raised by any control when the mouse leave
  a control during a DnD operation, or when the DnD operation terminates.
* NEW: DragMove and DragLeave events take the proxy into account. 

[GB.GUI.BASE]
* NEW: ScrollArea, GridView, TreeView... now automatically scroll during a
  DnD operation.
* BUG: Remove the overriden MouseDown event from the GridView class.
* BUG: A DnD operation does not eat the next mouse click anymore in 
  GridView, TreeView... controls.

[GB.QT4]
* NEW: DragLeave is a new event raised by any control when the mouse leave
  a control during a DnD operation, or when the DnD operation terminates.
* NEW: DragMove and DragLeave events take the proxy into account. 


git-svn-id: svn://localhost/gambas/trunk@5303 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-11-07 22:51:04 +00:00
Tobias Boege
b417f1861e [GB.DATA]
* OPT: Great overhaul of List algorithms. Beware: Still buggy.
* OPT: Make list chunks carry multiple Variants to improve cache locality.
* OPT: Don't traverse List forwards/backwards when the absolute value of
  index is past the half of Count.
* NEW: Introduce List.Backwards - a virtual object to enumerate backwards
* NEW: Don't use List.Current as enumeration pointer.
* NEW: Begin enumeration at the first/last node.
* NEW: Traverse backwards when given negative index to _get.
* NEW: Make Current invalid by default.
* NEW: Assign first/last element when MoveNext()/MovePrev() is issued on an
  invalid Current.
* NEW: Use List.Current as pointer for the Find*() methods, too.
* NEW: Assign first/last element when FindNext()/FindPrev() is issued on an
  invalid Current.
* NEW: Don't return an index from Find*() methods because it is not the way
  linked list are dealt with.
* NEW: Make insertion and removal of elements safe in enumerations.
* NEW: When Current (or enumerator) is removed, the pointer remains relative
  to the beginning of the List but it never wraps around the end.
* BUG: Correctly *cycle* with {Move,Find}{Next,Prev}()



git-svn-id: svn://localhost/gambas/trunk@5302 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-11-06 21:03:07 +00:00
Benoît Minisini
619f6c0e3c [GB.DATA]
* BUG: Add 'list.h' to the source file list.


git-svn-id: svn://localhost/gambas/trunk@5195 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-09-23 18:32:39 +00:00
Tobias Boege
4f57ded502 [CONFIGURATION]
* NEW: Rename gb.adt to gb.data
* NEW: Mark gb.data as "Unfinished"

[GB.DATA]
* OPT: Block all changes from my working copy until they are mature. The
  interface is considered to be stable (although some details in behaviour
  will change); this justifies the "unfinished" state.



git-svn-id: svn://localhost/gambas/trunk@5147 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-09-09 20:20:47 +00:00