|
|
|
|
Version released at this point: 6.3.1.0006
November 07, 2006
1) Entry Title: Sage.PutFieldA - Added checking of date and time field data
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need to check the data being put into date and time
fields to ensure that it is the correct format.
Correction: Added a check into PutFieldA so that if the target field
is a date or time type then the string is check to see
that it conforms to the mask for that field. If not a
Minor error is generated.
2) Entry Title: SetLib.PreviousElement - Not correctly locating entries
Area Affected: Ada, M2, Delphi
Status: Complete
Description: The routine PreviousElement does not always correctly
find entries.
Correction: A numeric value in some assembler code was entered as a
decimal value instead of a hex value.
3) Entry Title: Thor - Getting an access violation when adding an FTP object
Area Affected: Thor
Status: Complete
Description: Getting an access violation while trying to add an FTP
object.
Correction: Found that the newer Delphi compiler was catching and
throwing an access violation when a null string was
indexed. Apparently this had been slipping past in older
versions of Delphi.
November 06, 2006
1) Entry Title: BinLib - BinaryLocateLong routine is not exported
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need to export the BinaryLocateLong routine.
Correction: Made the BinLib.BinaryLocateLong routine visible in the
exported routines list.
2) Entry Title: WinExec - Getting a memory leak error
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Getting a memory leak whenever the Exec routine is run.
Correction: Found and corrected the problem. Should have explicitely
called the Close routine.
3) Entry Title: Thor - Added an auto increment type field
Area Affected: Thor
Status: Complete
Description: Added an auto increment type field which is defined as a
type 19.
Correction: Added a new field type in Thor that is called an auto
increment field. Whenever a record is written a unique
integer value will automatically be assigned into this
field. You do not have to do anything in your code to
make this happen. In fact if you try to alter this field
yourself it will generate an error. Each time a record
is written a unique positive integer value is assigned to
the field. If you delete records then the next time
that new records are written those gaps in the numeric
sequence WILL be reused.
NOTE - any relation which has an auto increment field
should NOT be used in the Sage.ProcessAdd routine.
Because key indexes for the relation are turned off
during that operation the field WILL NOT be loaded with
values.
4) Entry Title: WEditLib - Getting a memory leak error
Area Affected: Delphi
Status: Complete
Description: Getting a memory leak error.
Correction: Found that a open array element was being passed to a
MoveLib call without explicitely referencing the [0]
element.
5) Entry Title: StringsX.SubString - Getting an array length error
Area Affected: Delphi
Status: Complete
Description: Getting an array length error from the SubString call.
Correction: Found that if the source string logical value was shorter
then the dest string but the entire source string was
longer (in other words the string was a long null filled
string) that it would pop the array length check.
Corrected so that it only pops if the actual string value
is longer than the destination string, not just the
physical string length.
6) Entry Title: Delphi type symbol files added
Area Affected: Thor
Status: Complete
Description: Need to have Delphi symbol files in the list of symbol
file types.
Correction: Added Delphi as a choice in the type of symbol files that
can be selected.
7) Entry Title: SageRich - Getting a memory leak error
Area Affected: Delphi
Status: Complete
Description: Getting a memory leak trace to the SageRich unit.
Correction: Found that an allocation used a variable containing one
size value but the deallocation came from another
variable with a different value.
8) Entry Title: GDIW - Need to detect corrupted fields and handle it
gracefully
Area Affected: GDIW
Status: Complete
Description: Need to gracefully detect and handle when a field has
some type of corrupted data in it.
Correction: Added code to silently and gracefully handle the error if
a field contains bad data values in it. Prior to this
change it would end up popping up a Minor or Fatal error
message. Now the error is handled and the field will end
up with the string value '[BAD DATA]' shown.
9) Entry Title: QueryLib, SQLExec - Added an error parameter to many calls
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need to have an error parameter returned from many of the
calls.
Correction: Added an error parameter to many of the calls so that
errors that happen inside the routines can be detected by
the calling routines.
10) Entry Title: WinExec - Not executing programs when called
Area Affected: Delphi
Status: Complete
Description: Will not execute a program when called.
Correction: Found that conversion to Delphi had introduced an error.
Instead of passing a pointer to the name of the program
to execute it was passing a string of the name.
October 06, 2006
1) Entry Title: Profile - Getting a can't modify error message if the file
does not exist
Area Affected: Ada, M2, Dephi
Status: Complete
Description: Getting the error messsage that the file cannot be
modified even if the file does not exist.
Correction: Added a check so that the can't modify message is only
put up when the file already exists but is read only.
August 25, 2006
1) Entry Title: FileUtil.GetUniqueFileName - Adjust params for better
control of the name
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Add params to allow just appending values on the current
Prefix and Extension of the name instead of completely
replacing them.
Correction: Added params to allow controlling how many numeric digits
get added and changed logic to append those digits to
the current Name and Extension.
2) Entry Title: FileUtil.SetToExePath - New routine to set path of a file
to the current exe folder
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need a new routine that will provide an easy way to make
sure that a file's path points to the currently running
executables location.
Correction: Added the routine FileUtil.SetToExePath to provide the
function described.
August 23, 2006
1) Entry Title: Thor - Getting an access violation when converting old src
file
Area Affected: Thor
Status: Complete
Description: Getting an access violation error when an old format .src
file is being converted to the current format.
Correction: Found where a pointer was being set to nil that should
not have. This error was introduced and is contained in
versions 6.3.1.0003, 6.3.1.0004 and 6.3.1.0005. If you
have any of those versions you will not be able to open
old .src files (older than approximately four years ago).
August 01, 2006
1) Entry Title: TimeLib - Added routines for working with dates prior to
1900
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Added routines to allow working with dates prior to 1900
accurately. Prior to this change the TimeLib date
routines did not accurately recognize any date prior to
January 1, 1900. The Leap Year calculations were
inaccurate also as they tried to calculate leap days
prior to the year 1753 (they didn't exist before that).
The new routines introduce a new date value called a
ChronoJulian (chronological julian) that is accurate in
the older dates. The starting point of a ChronoJulian
date begins at Jan. 1, 4713 B.C. and continues upward
counting the number of nychthemerons since that time. A
nychthemeron is one complete cycle of day and then night
back to the beginning point. This type of date is
typically used in more scientific areas such as
astronomy. Note though that even this is not completely
standard as some people use midnight of Jan. 1, 4713 B.C.
as the starting point and others use noon of that day as
the start of the first nychthemeron. In these
algorithms the midnight starting point was used as it
seems to be more widely used. Some of the new routines
also introduce the dual date format which is used when
talking about dates that occurred around the time of the
switch from the Julian calendar to the Gregorian
calendar. Dual dates for example appear like this: Jan.
15, 1773/1774 (in the Julian calendar that day was Jan.
15, 1773 but the same day in the Gregorian calendar was
Jan. 15, 1774).
Correction: Added routines for working with dates prior to Jan. 1,
1900. These routines are TimeLib.CheckDualDate,
TimeLib.ChronoJulianToGregorianDate,
TimeLib.CurrentDateChronoJulian, TimeLib.FixDualDate and
TimeLib.GregorianDateToChronoJulian.
These routines were added for the convenience of working
with older dates and do not affect any of the current
date and time routines in the TimeLib package.
July 27, 2006
1) Entry Title: BlockDataLib, MultUser, AscRptLib packages/modules/units
added
Area Affected: Ada, M2, Delphi
Status: Complete
Description: New modules called BlockDataLib, MultUser, AscRptLib were
added.
Correction: These modules contain some handy routines that are useful
to people working with block data, multi-user mode or
doing ASCII format report files. These packages are used
by a number of tools and applications but before this
the code was kept outside of SageST. For convenience of
use and maintenance these were added to SageST.
Initially there probably aren't routines that anyone
needs to rush to use but they will be available for
future use now.
July 24, 2006
1) Entry Title: CtrlLV - LV control giving an access violation
Area Affected: Delphi
Status: Complete
Description: Getting an access violation from the LV control if a
column header is clicked or if a column is resized.
Correction: Two type declarations incorrectly declared to be pointers
to a type instead of the base type itself. A second
type based on these declared a pointer which then caused
a double pointer reference instead of a single. This was
causing an access violation when trying to dereference
variables of these types.
2) Entry Title: SageDialogs - Not showing fixed volume names correctly.
Area Affected: Dephi
Status: Complete
Description: The dialog to show folders is not showing fixed volume
names correctly.
Correction: Found a call to the Windows API that did not correctly
pass in a buffer. The buffer never got loaded with
information.
July 12, 2006
1) Entry Title: CtrlTree - Getting access violations when the tree is used.
Area Affected: Dephli
Status: Complete
Description: Getting access violations when the tree is used.
Correction: Found a M2 to Delphi conversion error where a type was
ported as the pointer to a record type instead of using
record type itself.
July 10, 2006
1) Entry Title: Display.KeyboardTable type changed to SageSpec.KeyboardDef
Area Affected: Ada, M2, Delphi
Status: Complete
Description: The type name Display.KeyboardTable has been eliminated.
Correction: Use the type SageSpec.KeyboardDef instead.
June 29, 2006
1) Entry Title: WinRebuild - If DFL open on entry it closes on exit
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Found that if the dfl was open when the routine was
called it still closed it on exit. Should leave it in
the same state.
Correction: Corrected the code so it leaves the dfl either open or
closed depending on the state that it was in when called.
2) Entry Title: Reports - Not able to use any routine after Open is called
Area Affected: Delphi
Status: Complete
Description: The Open routine can be called but every other routine
does not work.
Correction: Found that the way the Handle params was being internally
used it did not get properly set coming back out of the
Open routine. Since the handle was invalid then it
caused every subsequent routine to fail that it was
passed to.
June 27, 2006
1) Entry Title: Sage.CopyField - Getting an access violation
Area Affected: Delphi
Status: Complete
Description: Getting an access violation from the CopyField routine.
Correction: Found that this was a M2 to Delphi conversion problem.
The logic ended up trying to nul fill a pointer. That
ended up overwritting memory. The logic was corrected to
not use a pointer.
2) Entry Title: TermX.WriteString - Getting a range check error if nul
string passed in
Area Affected: Delphi
Status: Complete
Description: Getting a range check error if a null string is passed
in.
Correction: Added a check to detect the nul string and to gracefully
handle it.
3) Entry Title: CtrlBttn - Getting stack overflow in overloaded copy of
OwnerDrawBMP
Area Affected: Delphi
Status: Complete
Description: Getting a stack overflow from the overloaded routine
STROwnerDrawBMP when it is called.
Correction: Found that the call to the array of char copy had a
mistake in the params so this routine was recursively
called instead.
4) Entry Title: ListView control - blows up when the mouse is scrolled.
Area Affected: Delphi
Status: Complete
Description: Getting a numeric overflow from the ListView code
(SageLV) when the mouse is scrolled using the wheel.
Correction: Found that the wheel handling routine did not work the
way the code had been converted. The logic had to be
altered slightly in order to convert a value to integer
correctly.
June 19, 2006
1) Entry Title: Sage.ResetAllRelationPaths - Need a routine to handle
setting all paths at once.
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need a routine that will handle setting all relation
paths at once. This would be handy for allowing multiple
folders of data customized to individual themes for an
application.
Correction: Added the routine Sage.ResetAllRelationPaths. This
routine handles the need plus has a flag to control how
the error related to a relation already being open is
handled.
June 05, 2006
1) Entry Title: FileUtil.ReplaceFileAndExtension - Name changed
Area Affected: Ada, M2, Delphi
Status: Complete
Description: For consistency the name of this routine should be
changed.
Correction: Changed the name to ReplacePrefixAndExtension to be more
consistent in the terms.
2) Entry Title: FileUtil - Need a routine to generate unique filenames
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need a routine that will return a guaranteed unique file
name that is currently not in use.
Correction: Added the routine GetUniqueFilename. With this routine
you can generate a filename that is currently not in use
and can be unique either in the prefix, the suffix or
both portions of the name.
June 02, 2006
1) Entry Title: SetLib - Several bugs corrected in multiple routines.
Area Affected: Delphi
Status: Complete
Description: Several routines are not functioning correctly in Delphi.
Correction: Found several logic errors introduced in code that had to
be reworked when converted from M2 to Delphi.
2) Entry Title: StringsX.SliceAssign - Added a routine that handles slicing
strings.
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need a routine that handles string slicing elegantly. In
some languages this is supported already (i.e. Ada and
M2) but in Delphi it is more difficult where we use the
array of char type.
Correction: Added a routine that elegantly handles slicing and
assigning those slices to other strings.
3) Entry Title: GdiPrint - Corrected problem in calculating printable
string size.
Area Affected: Delphi
Status: Complete
Description: Corrected a problem related to finding out how much text
will print in a given rect.
Correction: The problem was intruduced in a code change necessary
when converted from M2 to Delphi.
May 30, 2006
1) Entry Title: CtrlLV - Corrected problem with colors being corrupted.
Area Affected: Delphi
Status: Complete
Description: The colors are being corrupted when the user proc is
called and inside there a call to CtrlLV.SetColor is
done.
Correction: Found that global variables being used to hold the color
selections were being overwritten when SetColor was
called.
2) Entry Title: Toolbar - Getting an overflow error.
Area Affected: Delphi
Status: Complete
Description: Getting an overflow error from the toolbar code when the
toolbar is created.
Correction: Found that when converted from M2 to Delphi an incorrect
typecast was made which caused the overflow.
3) Entry Title: FldFlags - String too short to contain field name with
repeats
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Getting an array too short message out of FldFlags.
Correction: Found a local variable that was not long enough to hold a
field name when repeat values were also specified.
May 19, 2006
1) Entry Title: SageSpec - Added a CFM file extension constant
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need a .cfm file extension constant for Cold Fusion
files.
Correction: Added the .cfm constant.
2) Entry Title: BMPLib - Made the CreateDIBPalette routine exported.
Area Affected: Ada, M2, Delphi
Status: Complete
Description: The routine BMPLib.CreateDIBPalette needs to be callable
by other modules.
Correction: Moved the formerly internal only routine CreateDIBPalette
into the spec file so its visible by other modules.
May 17, 2006
1) Entry Title: StringsX - Assign, NulFill, BlankFill - added SageError if
destination strings were too short
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Sometimes when these routines were called the destination
string was too short. In the case of Assign the success
flag was set to false but that was all. For NulFill and
BlankFill nothing was done except to copy over as much
of the string as possible and then just quietly throw the
rest of the string away.
Correction: Added the popup of SageErrs.ArrayToSmall if the
destination string is too short. This was added for the
routines Assign, NulFill, BlankFill, Insert, Substring
and Concat.
May 15, 2006
1) Entry Title: CmndLine - Getting too much info back on the command line.
Area Affected: Delphi
Status: Complete
Description: The routine CmndLine.GetCommandLine is returning too much
information on the command line. It is supposed to
return just the command line arguments but in Delphi it
is returning the name of the executable also.
Correction: Note - This is a Delphi only problem. Corrected the
algorithm to return the same way that it does in all
other languages.
Version released at this point: 6.3.1.0005
April 27, 2006
1) Entry Title: Date Fields - Getting an invalid format error when data put
into date fields
Area Affected: Ada, M2, Delphi
Status: Complete
Description: When data is put into a date field, including valid data,
an error is generated stating that the field is the
wrong format.
Correction: As can happen sometimes there were actually two errors
down in SageST. Both were present but were a 'silent'
type error that didn't cause a noticable popup or data
corruption. A few days back one of them was uncovered
and corrected prior to the last release. That correction
caused the second error, when it occurred, to become a
pop up error that was not noticable. The second error
just had not been encountered during testing before the
release went out. At this point both errors should be
fixed and all working again. Both errors involved a
string containing a date but also containing stray
characters out at the end of the string because it had
not been properly nul filled before being sent to the
checking routine. A new check put in to watch for that
type of thing after the first error was discovered caused
this error to manifest now.
Version released at this point: 6.3.1.0004
April 17, 2006
1) Entry Title: SageErrs - Added an error 148 which is InvalidStringFormat
Area Affected: Ada, M2, Delphi
Status: Complete
Description: An error 148 was added to the current SageErrs list.
Correction: This error will be used in SageST to designate a general
violation of an expected string format when no other
particular error fits the situation.
2) Entry Title: TimeLib - Corrected an error where junk was showing up in a
string
Area Affected: M2
Status: Complete
Description: Getting junk showing up in the return value of
Date0ToDate9.
Correction: Found that a string instead of being completely nul
filled was only getting set to a single nul character.
This caused problems later when the rest of the string
was returned.
April 11, 2006
1) Entry Title: InfoLib.CharacterIsValid - Routine would always return False
Area Affected: Ada. M2, Delphi
Status: Complete
Description: The InfoLib.CharacterIsValid routine always returns
false. This was first noticed in an edit control when
the validate character function was turned on.
Correction: Found that this routine had an error introduced into it
when converted from the DOS code to the full DLL code.
Previously the routine Modula-2 had to been a function
that also had var parameters. When the system was
consolidated to be fully DLL code this could not be
allowed. When this routine was changed a bug was
introduced. The validation was performed but instead of
exiting the logic fell through to the bottom of the
routine where it always defaulted to a false value.
April 04, 2006
1) Entry Title: Sage - Added new routines to get data in string format
Area Affected: Delphi
Status: Complete
Description: Added new routines called GetFieldStr and GetFieldStrX to
get data much the way that GetFieldA does but these are
functions that return the string value.
Correction: These routines help in the situation where you are trying
to get data from a field and load it into a Delphi edit
control. This is a simple way to load the .Text property
of the control.
March 16, 2006
1) Entry Title: STBackup - Added routines to allow for not using the
registry
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need routines that do not depend on the registry to store
data.
Correction: Renamed the existing routines by adding the work Registry
on the front. Then added two new routines using Ini as
the prefix. The new routines require the name of a .ini
file which will be used to store the information about
the current back process.
Version released at this point: 6.3.1.0003
February 22, 2006
1) Entry Title: SGK - PCX and Graphics packages renamed
Area Affected: M2, Delphi
Status: Complete
Description: In the SGK library the packages PCX and Graphics were
found to conflict with Delphi packages of the same name.
Correction: The package PCX was renamed to SGKPCX and the package
Graphics was renamed to SGKGraphics. This was done
across all languages to keep consistency across all
languages. It would create maintenance headaches to have
the same code named one thing in one language but a
different name in another.
February 13, 2006
1) Entry Title: Thor - Fixed subschema compilation problem
Area Affected: Thor
Status: Complete
Description: Getting an error and imcomplete compilation of a dfl if
using a subschema.
Correction: Found and corrected a logic error related to earlier fix.
Earlier fix was compiling a subschema on one drive when
Thor installed on different drive.
2) Entry Title: Program - Renamed this module to ProgramX
Area Affected: Ada, M2, Delphi
Status: Complete
Description: The module Program has been renamed to ProgramX.
Correction: The module name could not be Program as this conflicts
with a key word in Delphi. To keep consistency across
the SageST library the module was renamed in all
languages to ProgramX.
Version released at this point: 6.3.1.0002
January 05, 2006
1) Entry Title: Random - If using 64 bit numbers would throw a range
violation
Area Affected: Delphi
Status: Complete
Description: If using 64 bit numbers (floating point) the Random
routine could throw a range violation.
Correction: Found that internally an incorrect call was made to a
routine that takes cardinal params instead of 64 bit. If
the value exceeded 32 bits a range error was thrown.
January 04, 2006
1) Entry Title: Type 15 fields (binary) values cannot be set in some cases.
Area Affected: Ada, M2, Delphi
Status: Complete
Description: The type 15 fields (binary) will not set the value if
certain byte values are encountered in the binary value.
Correction: Corrected a problem if the binary value started with a 0
byte value.
November 28, 2005
1) Entry Title: StringsX.GetNextItem
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need a routine to parse out items from a list in the form
of a string.
Correction: Added the routine GetNextItem. If a string is formatted
with seperator characters this routine can pull out each
item of the list.
November 14, 2005
1) Entry Title: Thor - Compiling subschemas on drive different from where
Thor resides fails
Area Affected: Thor
Status: Complete
Description: If the SRC file is on a different drive from where Thor
resides when you compile a subschema it will fail.
Correction: Found that the subschema name was built including the
path but not the drive designation. So when it tried to
find that path it was looking on the wrong drive.
2) Entry Title: GDI - Not showing a relations data correctly.
Area Affected: GDI
Status: Complete
Description: A particular relation will not show the data correctly in
GDI.
Correction: Found that this relation did not have a key field defined
for it at all. It was being used to hold a single
record and didn't use a key. GDI just did not handle
that well and would not correctly position on the record
in order to show the data.
November 02, 2005
1) Entry Title: Sage.GetXHandleRelation - New routine to find relation
associated with an XHandle
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need a new routine to recover the name of the relation
that is associated with a given XHandle.
Correction: Added the routine GetXHandleRelation. An XHandle is
passed in and the name of the relation associated with
this handle is returned.
2) Entry Title: Sage.GetKeyPositionX - New routine to retrieve the index
position of the XHandle record.
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Need a new routine to return the index position of the
record that is associated with the XHandle.
Correction: Added the routine Sage.GetIndexPositionX. This routine
returns the index position of the record that is
currently associated with the XHandle.
3) Entry Title: Thor - When using the F2 key on a form it would abort
Area Affected: Thor
Status: Complete
Description: When the F2 key is used Thor aborts.
Correction: Found that it was a combination of things, specifically
having a one character field sitting at the first
position of the second row that caused some logic to
generate a value of -1 for a cardinal.
October 13, 2005
1) Entry Title: SortList - Not sorting correctly if a positiveSort type
list is opened.
Area Affected: Ada, M2, Delphi
Status: Complete
Description: If a sort list is opened with the positiveSort type
defined for it then it will not sort correctly.
Correction: Found that a global variable and a local variable had
been named the same but depended on case sensitivity to
keep them seperated. A change made them the same so the
logic ended up not setting a value correctly in the
global which caused the sorting mechanism to fail only on
this type of sort.
2) Entry Title: Thor - Dfl's containing dialogs and windows may not work
correctly
Area Affected: Thor
Status: Complete
Description: Dfl's that contain dialogs and windows my not run
correctly.
Correction: Found that any version of Thor dated from 01/19/2005 to
10/12/2005 may contain this error. Due to a problem in a
lower level library where a case sensitive dependancy
between the name of two variables became undone any dfl
compiled during the listed dates may not work. Note that
the dfl MUST contain dialogs and windows and in fact
probably should contain several of those in order for
this problem to be evident. The rest of the dfl (i.e.
relations, forms, etc.) is fine, the problem will exist
only in the objects. The problem is that a directory
(list) of the objects buried inside the dfl may not be
sorted into proper order.
3) Entry Title: Configure - Has memory leaks
Area Affected: Configure
Status: Complete
Description: Memory leaks are listed in its memory log.
Correction: Found and corrected the problem. An extra line telling
the menu to refresh at the wrong time caused a leak.
4) Entry Title: GdiW - Memory leaks
Area Affected: GdiW
Status: Complete
Description: Memory leaks are listed in its memory log.
Correction: If you changed the data folder it did not properly clean
up some pointers before evaluating the new folder.
5) Entry Title: SDI - Not performing a data dump if used in batch mode
Area Affected: SDI
Status: Complete
Description: If SDI is used interactively it correctly dumps a report
as a data dump file. However if called in batch mode it
adds other elements to the output.
Correction: Found a logic error that caused it to think it was doing
a normal report print rather than a data dump when used
in batch mode. So the output was a file that contained
report elements other than just the data. Corrected the
problem so that it will correctly either print a report
or data dump depending on the report options settings
even when called in batch mode.
October 12, 2005
1) Entry Title: SageErrs - Added a new error 147 which is an array bounds
violation
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Added a new SageError value of 147, array bounds
violation.
Correction: This error represents a request to violate the bounds of
an array. Some of the SageST code can do processing on
an array and if it overruns the end of the array it will
not necessarily cause the application to raise an array
exception. This new error was added along with code to
do checking for these conditions and raise this error
before getting into that situation. An example of this
checking and error can be found in the SetLib code.
2) Entry Title: ModSys - Added a CalcMod routine to hide direct use of the
MOD operator
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Added a routine called ModSys.CalcMod to hide the direct
use of the MOD operator.
Correction: Using the MOD operator directly does not work well if the
code is to be ported between the Ada, M2 and Delphi
languages. The MOD operation works slightly different in
Delphi so the answers you get back are not the same. If
you use this routine instead then the answer you get
back from the calculation will always be the same in all
languages. Inside the Delphi version of this routine we
do the adjustment necessary to make the answer the same
as you would get in the other languages.
3) Entry Title: SetLib - Added checks to assure not running over array
bounds
Area Affected: Ada, M2, Delphi
Status: Complete
Description: Currently SetLib routines did not check for array bounds
problems and could easily overwrite memory.
Correction: Added an array bounds check before calling the code that
could overwrite memory. If the number sent in is going
to cause an array bounds violation then a Minor Error of
147 is popped.
September 28, 2005
1) Entry Title: GDIW - Fixed memory leak
Area Affected: GDIW
Status: Complete
Description: Found a memory leak caused by deallocating the relation
list short by one entry.
Correction: Deallocated the same number of entries as relations.
2) Entry Title: Thor - Multiple memory leaks
Area Affected: Thor
Status: Complete
Description: Multiple memory leaks detected from the tracking file.
Correction: One global variable used to try and track the allocations
of eleven different buffers. Eventually the size
variable was reused and that caused the buffer to not be
deallocated later. Declared individual variables to
track each buffer.
September 15, 2005
1) Entry Title: Sage.GetFieldB - if SageError set before this routine
called then return value incorrect
Area Affected: Ada, M2
Status: Complete
Description: If SageError has been set before GetFieldB was called the
return value of the routine may be compromised.
Correction: Corrected the logic to ignore the previous SageError when
calculating the return value of the routine. Note that
this affected only the M2 and Ada libraries, Delphi was
unaffected.
January - December 2005 Changes
January - December 2004 Changes
January - December 2003 Changes
January - December 2002 Changes
January - December 2001 Changes
October - December 2000 Changes