The current production release version of the ASN1C
compiler is 5.75. The following changes have been made since the last patch
release (5.74):
 |
Fixed bug Java BER message dump logic. If
message contains indefinite lengths with EOCs then the generated dump is
incorrect (EOCs were just ignored and offset was calculated incorrectly). (PR#
000382) |
 |
Fixed bug in C/C++ streamed BER decode
logic generation. If an element is a SEQUENCE with no elements (empty) and is
encoded with indefinite length, then the code with matching EOC was generated
incorrectly. (PR# 000377) |
 |
Modified logic to generate rtkey.h file
to always generate file, even if license is unlimited. It is necessary to fix
problem when user has unlimited license but wants to use limited SDK libraries.
(PR# 000376) |
 |
Fixed performance issue in C/C++ PER
encoding logic. Performance was found to be worse then earlier ASN1C versions.
Reason was repeated checking of an environment variable which was not
necessary. (PR# 000375) |
 |
Fixed bug in C XER/XML code generation.
If element has name "unknown" then the generated names table *_ElementIDs
contains duplicate *_unknown_ID name (because *_unknown_ID is added
automatically); changed to *__unknown_ID. (PR# 000374) |
 |
Fixed problem with generated SAX code for
C XML/XER: if an element of SEQOF/SETOF is forward-referenced then the
element's SAX handler was referenced incorrectly. This caused C compilation
errors. (PR# 000373) |
 |
Fixed bug in generation of import
statements for compact Java code generation. (PR# 000372). |
 |
Fixed C# compact runtime library link
error with Octet String type generated code. Constructor for string value was
missing. (PR# 000371). |
 |
Fixed bug in Java code generation for BER
indefinite length decoding. (PR# 000367) |
 |
Fixed bug in which incorrect BER decode
C/C++ code was generated for SEQ OF/SET OF in the case events handlers were
used. In this case the returned status from the generated decode function call
inside the loop was not tested and imay cause infinite loop. (PR# 000366) |
 |
Fixed bug in encoding of XML character
data in Java & C#: if character data contains '<', '&', etc then
these symbols MUST be escaped as "&", "<", etc. Otherwise, encoded XML
file is not well-formed. (PR# 000361) |
 |
Fixed bug in the C/C++ decode logic
generated for invocation of event handlers for optional elements. All handler
callbacks for the element (startElement, data, and endElement) should not be
called if the element is not present. endElement was being invoked in some
situations. (PR# 000344). |
 |
Modified C# event handler code generation
to invoke a second callback on open type items with real type name when table
constraint decoding was done. (PR# 000331). |
 |
Fixed Java and C# PER code generation bug
for Integer type with value range constraint union/set. (for example:
TGD::=INTEGER (0|15..269)). (PR# 000319 and 000325). |
 |
Fixed bug in which C/C++ compilation of
application with -D_COMPACT option did not work correctly. (PR# 000320). |
 |
Fixed bug in C/C++ code generation. If
-cfile option is used with -prtToStr, compiler was not adding #include
"rtPrintToString.h" to the generated C file. (PR# 000302). |
 |
Bug in Java and C# generated BER decoding
logic. If open type is encoded with indefinite length then the last open type's
EOC was not parsed at all and further decoding failed. (PR#000300 and
000301). |
 |
Fixed bug is which error count was not
reported correctly by compiler. Generation of common C/C++ files contained
errors but compiler said compilation was successful. (PR# 000297). |
 |
Fixed C/C++ code generation bug for
NamedInteger and Enumerated type with max 32-bit unsigned integer value of
named variable. e.g. Type ::= INTEGER { min(0), max(4294967295)} -- 4294967295
had problem. (PR# 000294) |
 |
Fixed bug in BER C/C++, stream code
generation. If option -static is used in conjuction with -stream and -ber, then
the generated code for decoding of extension elements is incorrect.
'ASN1OpenType extElem' is generated instead of 'ASN1OpenType *extElem' in
header file, but the decode logic is still generated like extElem1 is a
pointer. (PR# 000292) |
 |
Fixed bug in XSD code generation for
INTEGER type with extensible size constraint. e.g. ( 0..255,...). (PR#
000289). |
 |
Fixed bug in XSD code generation in which
C/C++ reserved names were being altered with underscores. Name for XSD should
not be changed. (PR# 000288). |
 |
Fixed bug in C# compact code generation
(-compact) in which classes were not being generated for PDU types in certain
situations. (PR #000286) |
 |
Fixed bug in Java compact code generation
(-compact) in which classes were not being generated for PDU types in certain
situations. (PR #000285) |
 |
Fixed errors in setting type code in C#
and Java event handlers. (PR #000281, #000265, #000264, #000263). |
 |
Fixed memory leak in C/C++ limited
run-time that occured in license check routine. (PR #000271). |
 |
Modified C/C++ BER decode tag match
functions to not log an error if a tag match on an optional element fails. (PR
#000269). |
 |
Updated documented procedure for decoding
a series of messages in a loop in the ASN1C C/C++ User's Guide. (PR#
000266). |
 |
Changed use of backward slash "\" to
forward slash "/" in C# filename to support C# code generation on Linux
platform. (PR# 000262). |
 |
Fixed C/C++ makefile generation logic
(-genmake) to include Asn1External / Asn1EmbeddedPDV files in the list of files
when they are generated. (PR #000259). |
 |
Fixed generation of C/C++ free functions
to check for null pointers in functions in places where members in a structure
are freed. This was needed because it was possible for these functions to be
invoked with partially decoded messages following a decode error. (PR
#000258). |
 |
Capability to print to string was added
for C# code generation (Changed Print() function base class to TextWriter from
StreamWriter) . (PR#000257). |
 |
Fixed bug in C/C++ code generation for
SEQUENCE type with { RootElementGroup ExtensionElementGroup RootElementGroup }
elements. This caused the CSTA Phase III API to not work correctly. (PR
#000254). |
 |
C libraries compiled with the IBM xlc
compiler were added to the AIX package (before, only gcc-compiled C libraries
were available). Also 'xlc64' and 'xlC64' targets were added to provide 64-bit
libraries for AIX (NOTE: these libraries will work ONLY on AIX 4.x, they are
not compatible with AIX 5). (PR# 000247). |
 |
Fixed C# and Java code generation for
explicitly referenced types (i.e. references of form
<ModuleName>.<TypeName>). (PR# 000245, #000244). |
 |
Fixed bug in which constraint checks were
not being done in Java on SEQUENCE OF / SET OF fields with size constraints.
(PR# 000238). |
 |
Fixed bug in which Java compilation of
generated encode method was failing in the case of a type that has a constraint
but is not tagged. For example: CountExtentType ::= IntegerOrNullList
(SIZE(2)) (PR# 000237). |
 |
Fixed infinite loop in compiler which
occurs on definitions such as the following: Decimal ::= XSD.Decimal
(PR# 000236). |
 |
Fixed bug in XML encoding in which
SEQUENCE OF/SET OF OCTET STRING was being encoded as space-separated list
(C/C++/Java/C#). (PR# 000221) |
 |
Fixed documentation on C/C++ type used
for extensibility fields (...) in ASN1C C/C++ User's Guide. Was incorrectly
indicating type was Asn1OpenType when in fact Asn1RTDList was used (list of
Asn1OpenType). (PR# 000217) |
 |
Fixed bug in XER/XML code generation for
OPERATION/ERROR macro elements. (PR# 000216). |
 |
Fixed bug in Java Asn1Time.setTime method
- daylight saving time offset was not taken into account when diffTime is
calculated, it led to incorrect Generalized and UTC Time strings. (PR#
000215) |
 |
Version 5.73 package upgraded to contain
C/C++ .NET DLL's for both the 2002 and 2003 versions of .NET (previously, only
2002 DLL's were included). Also, both debug and release DLL's are included
(previously, only release DLL's were included). |
 |
Installation of C/C++ deployment run-time
libraries was changed to install libraries in lib_opt subdirectory instead of
overwriting SDK libraries in lib subdirectory. |
 |
Fixed bug in BER decoding in detecting
out-of-order elements within SEQUENCE constructs. Changes done for all
languages (C/C++, Java, C#). (PR #000205, 000204, 000203, 000172, 000171) |
 |
Added code generation for C and C++
writer and reader programs for streaming BER. Previously, -genwriter -genreader
-ber -stream generated incorrect code for reader/writer. (PR #000202) |
 |
OSCSocket/OSCSocketStream/ASN1BERSocketStream classes updated to
fix socket ownership problems. OSCSocket by default is responsible to close the
socket, streams do not close the socket connection. (PR# 000201) |
 |
Fixed bug in C/C++ run-time in which
berDecStrmMatchTag function was not filling in error parameters on unexpected
tag error condition. (PR# 000200) |
 |
Modified C/C++ test code generation logic
to populate character string variables using direct assignment of string
literal values instead of memory allocation and copy. |
 |
Fixed bug in C/C++ test code generation
logic in which memory was not being allocated for dynamic array elements in
some cases. (PR# 000197) |
 |
Fixed problem of slow decoding of
Asn1External/Embedded types in Java. Generated code was changed to use a
StringBuffer class instead of String. (PR# 000190) |
 |
Fixed problem in C/C++ BER code
generation in which a crash sometimes occurred when rtNewContext was used to
allocate a context and an open type was encoded within the generated code. (PR
#000189) |
 |
Fixed problem in which run-time license
binary data file (acv57lic.dat) was not working with C++ version of library.
(PR# 000187) |
 |
Fixed bug in Java and C# PER decode logic
in which unaligned BIT, OCTET, and UTF-8 strings were not being decoded
correctly. (PR# 000186) |
 |
Fixed bug in C/C++ test generation logic
in which binary data for OCTET or BIT STRING was not being copied correctly.
(PR# 000183) |
 |
Fixed an intermittent crash in C/C++
run-time having to do with the use of the rtMemReset memory allocation
function. (PR# 000182) |
 |
Performance of C/C++ print-to-string
functions was improved by using memory buffer streams with print-to-stream
logic. (PR# 000181) |
 |
Fixed an infinite loop problem in C# that
occurred in the Asn1DecoderBuffer class end of buffer check. Problem occurred
when stream read method returned zero length. (PR# 000179) |
 |
Fixed bug in C/C++ BER encode and decode
of certain parameterized types. Bug occurred when automatic tagging was used.
DummyReference items within parameterized types required explicit tagging in
this case which was not being done. (PR# 000176) |
 |
Fixed bug in C/C++ test code generation
in which NULL type was causing a compiler crash. (PR# 000175) |
 |
Fixed warnings caused by use of g++
compiler with -Wall option. Warnings were generated for C++ destructor and free
functions for ASN.1 CLASS definitions. (PR# 000174) |
 |
Fixed bug in C# code generation of event
handlers for open type fields. (PR# 000170) |
 |
Fixed C/C++ PER encode/decode size
constraint checking bug. In cases such as the following: OctStr ::= OCTET STRING (SIZE(0..50)) OctStr2 ::=
OctStr (SIZE(10..20)) The generated encode function for OctStr2
always returned a constraint violation error. This was also true for sized BIT
and character string types (PR# 000168). |
 |
Fixed bug in C/C++ PER code generation in
which -lax option was causing incorrect PER encode/decode methods to be
generated. This was caused by suppression of visible constraints required to do
the encoding properly (PR #000166). |
 |
Added missing implementation of
rtNewContext C run-time function (PR #000165). |
 |
Added C/C++ _NO_INT64_SUPPORT macro to
easily turn off int64 type support. If this option is defined, ASN1INT64 is
mapped to the C 'long' datatype and ASN1UINT64 is mapped to 'unsigned long' (PR
#000164). |
 |
Fixed C run-time memory-management
template file (rtMemHeapSubst.c). This file allows users to use an alternate
memory management scheme. Incorrect types were used in parameters of some
functions (int instead of size_t) (PR #000163). |
 |
Fixed bug in C/C++ PER constrained
integer and character string encoding. Problem occurred on nested constraints
such as the following: IntConst ::= INTEGER
(10..100) IntConst2 ::= IntConst (20..30) Encoder for IntConst2
was using base type range (10..100) instead of defined type range (20..30)
which led to incorrect encodings. A similar problem was fixed for character
strings with permitted alphabet constraints in this form (PR #000162). |
 |
Fixed Java and C# DER/PER/XER code
generation for Big Integer with DEFAULT value (incorrect constructor and Equals
method) (PR #000159 and #000157). |
 |
Fixed compiler crash that occurred when
INTEGER types with huge constraints (numbers with more than 127 digits) were
used (PR #000158). |
 |
Fixed bug in code C/C++ PER encode
function generation for 'SET OF ComplexType' constructs. The second argument of
the generated function ("value") was being passed by value instead of by
pointer as it should have (PR #000154). |
 |
Fixed C/C++ PER documentation which was
referring to the use of deprecated functions. |
 |
Added extensibility handling logic for
XER code generation for all languages (C/C++, Java, and C#). |
 |
Added sample programs to demonstrate use
of Visual Basic .NET with C# code generated for common language run-time
(CLR). |
 |
Added cpp/sample_per/nbapParser sample
program to demonstrate use of table constraints with a SAX parser to parse a
3GPP NBAP message. |
 |
Fixed bug in streaming encoding of BER
C/C++ short unsigned int in the range (128..255) (PR #000140). |
 |
Fixed bug in XER/XML code generation in
which "SEQUENCE OF name Type" construct was not being handled correctly (PR#
000129). |
 |
Fixed bug in C# and Java BER decode of
SEQUENCE type extension element (PR #00128). |
 |
Fixed an ASN1C crash when -maxcfiles was
used in conjunction with -genReader or -genWriter command line option (PR
#000133). |
 |
Fixed memory leak in C XER/XML decode
function generation logic. asn1Sax_<>_free function was not called from
asn1XD_<>/asn1XMLD_<> functions (PR #000137). |
 |
Fixed AIX linker warning "ld: 0711-224
WARNING: Duplicate symbol: asn1XmlSax_<>_bits_dict" (PR #000138). |
 |
Fixed problems in C/C++ makefile
generation in which "-I ../.." relative include not being added and "CCFLAGS"
not being set for C++ code gen (PR #000127). |
 |
Fixed bugs in generation of C++ parser
code when enumerated types are present. |
 |
List/Array/DynamicArray configuration
option support for C/C++ code generation. |
 |
Fixed XER/XML C/C++ code generation bugs
for dynamic/static configuration option. |
 |
C# code generation: using statement
generation fix for imported modules. |
|