Home> Support> ASN1C 6.1 Change Log

ASN1C v6.1.x Change Log

The current production release version of the ASN1C compiler is 6.1.5. Bug fixes that went into this release include the following:

  • Fixed a bug in XML code generation for C/C++ in which decode function does not flag an error when unexpected elements in a sequence encountered. (PR# ASN-1906)
  • Fixed a bug that caused Java to improperly resolve encode and decode methods from abstract classes, leading to an exception in some cases. (PR# ASN-1903)
  • Fixed a bug that occurred when both -depends and -warnings were used on the ASN1C command-line in which imported files that were not found but were not required were causing errors to be reported. (PR# ASN-1875)
  • Fixed a bug in XER code generation for Java and C# in which generated code can not be compiled when keyword EXTERNAL is used in the spec. (PR# ASN-1863)
  • Fixed a bug that caused enumerated values to be improperly assigned by a set method in CHOICE constructs for Java. (PR# ASN-1867)
  • Fixed a bug that caused long integers to be improperly generated in Java PER encode and decode calls when -xsd was specified. (PR# ASN-1867)
  • Fixed a memory access violation that occurred when -xsd is specified on the command line with -cfile or -hfile. (PR# ASN-1851)
  • Fixed a conflict between -3gpp and -events options. (PR #ASN-1842)
  • Fixed a GUI bug in which settings to mark fully qualified enumerations was not being properly saved in the project. (PR #ASN-1839)
  • Fixed a bug in which PDU-level constructors were improperly generated for ANY types when -xml was specified. (PR #ASN-1838)
  • Fixed a bug that caused imported modules to be reported as missing when -strict was supplied. (PR #ASN-1835).
  • Fixed a code generation bug that could cause crashes when generating C++ writer programs for XER. (PR #ASN-1833)
  • Fixed a GUI bug that prevented makefile generation for C#. (PR #ASN-1833)
  • Fixed a bug in C++ code generation for initializing CHOICE structures that are not PDUs. (PR #ASN-1814)
  • Fixed a bug in the Java runtime that caused mutually recursive decode calls to be made resulting in a stack overflow exception. (PR #ASN-1811)
  • Added support for getLength() method in Java and C# for SEQEUNCE OF productions. (PR #ASN-1807)

The following changes were made for version 6.1.4:

  • Asn1GeneralizedTime now includes default precision of minutes and seconds when both are set to zero for Java and C# runtime libraries. (PR #ASN-1793)
  • CHOICE tag constants are now generated. (PR #ASN-1785)
  • Removed option in GUI for generating equivalent ASN.1 from XSD based on X.694. Use xsd2asn1.exe instead. (PR# ASN-1781)
  • Replaced generation of new_* methods for SEQUENCE OF types. In versions 6.2 and higher, users should instead call NewElement to create new elements for the SEQUENCE OF type. (PR #ASN-1774)
  • Fixed a bug causing C++ enumerated identifiers to be improperly generated when compiling an XSD. (PR# ASN-1767)
  • Added the command-line option -hdrGuardPfx to allow a global prefix for header guards in C/C++. This prevents duplicate includes when modules of the same name are compiled into a library. (PR# ASN-1764)
  • Fixed a bug in XER code generation that caused a compilation failure. (PR# ASN-1763)
  • Fixed a bug in XML schema code generation in which enumerated default values on elements were not being generated properly (PR# ASN-1741)
  • Updated C/C++ event handlers to include methods for working with UTF-8 strings (PR# ASN-1735).
  • Fixed a bug in XML schema code generation in which the wrong namespace prefix was being used to reference types in the common ASN.1 types module (objsys instead of asn1). (PR# ASN-1720)
  • Fixed a name clash that occurred in the generated C code choice selector value when multiple specifications were compiled together with the -3gpp switch. (PR# ASN-1720)
  • Fixed a bug in generation of C++ initialization functions in which the context pointer member variable in the ASN1TPDU base class was not getting initialized. (PR# ASN-1702)
  • NULL types are now printed when -printToStr is specified. (PR# ASN-1696)
  • Fixed a bug that caused OSUTF8 macros to include an extra parameter. (PR# ASN-1690)
  • Corrected bug in which some types were not properly initialized in SEQUENCE OF decoding routines. (PR# ASN-1686)
  • Added ffs to the list of reserved words for Linux systems.

The following changes were made for ASN1C version 6.1.3:

  • Added -3gpp command-line switch to generate more user-friendly code code for table constraints in 3GPP/LTE specifications such as NBAP, RANAP, S1AP, or X2AP. This change affects C/C++ code generation for PER only.
  • Fixed a compiler bug in which calls to asn1Init functions were generated more than once (PR #ASN-1615).
  • Fixed a compiler crash when -list was specified with certain types of input specifications (PR#ASN-1610).
  • Changed Java and C# code generation to emit default constructors for ENUMERATED items when -tables is specified (PR #ASN-1605).
  • Test code generated for ASN1UniversalString is fixed to set 'nchars' value (PR #ASN-1604).
  • Fixed a regression failure where non-sequential XML elements were not properly indexed for lookup (PR #ASN-1603/ASN-1187).
  • Fixed a compiler bug in which incorrect code was generated for Null type (PR #ASN-1583).
  • Fixed a compiler bug in which wrong parameter was generated in Compare functions (PR #ASN-1583).
  • Fixed a memory leak encountered when calling memFreeAll on generated C++ control classes (PR# ASN-1571).

The following are changes made in ASN1C 6.1.2.

  • Fixed issues in how module names and OID's are matched when doing imports due to observation that module OID's are frequently mismatched between module headers and import statements. New policy is to match on module name as primary key and only use OID when ambiguity exists (i.e when multiple modules with the same name are found). The -strict option can be used to enforce strict matching of module name and OID value.
  • Fixed error message printing to suppress printing the same error message to standard output more than once per compilation.
  • Fixed a bug in generated print code that calls rtPrint16BitCharStr due to a change that was made in the calling arguments.
  • Updated makefile generation to properly trigger code generation when configuration files (specified with -config) are updated. (PR# ASN-1505)
  • Fixed C# code generation for derived enumeration types. (PR# ASN-1497)
  • Fixed Java code generation from XSDs that resulted in premature class termination. (PR# ASN-1496)
  • Added "sun" to the list of reserved words on Sun machines. (PR# ASN-1443)
  • Fixed a number of issues related to compiling XML schema (XSD) files with ASN1C.
  • Fixed a bug in which Java reserved words used in enumerated values were causing Java code that could not be compiled to be generated.
  • Fixed a bug in which module identifier object identifiers values were not being parsed correctly.

The following are changes made in ASN1C 6.1.1.

  • Fixed a bug in which real values in value range constraints (for example X ::= REAL (0..10.25)) were causing a syntax error to be reported by the scanner. (PR# ASN-1415)
  • Fixed a bug in the C/C++ PER decode bit macro (PD_BIT) in which it was not detecting read past end-of-buffer in certain situations. Also modified compact code generation to always check status when this macro was invoked.
  • Modified enumerated value printing in generated C/C++ code to print the enumerated value using ASN.1 name instead of modified C name. (PR# ASN-1391)
  • Modifed C/C++ table constraint code generation to use the configured object set prefix element (objectsetPrefix) to disambiguate generated _init functions used to set table values. (PR# ASN-1391)
  • Fixed Java code generation for some cases where null test comparisons contained typos.
  • Added integers into Java code generation for ENUMERATED types to facilitate the use of switch-case statements. (PR #ASN-1377)
  • Corrected regression when handling BIT STRINGs with bits named value. (PR #ASN-1377)
  • Fixed Java code generation for ENUMERATION elements that were contained in different modules as a result of using the -dirs switch. (PR# ASN-1369, ASN-1377)
  • Updated Java and C# runtime and code generation to ensure thread-safe decoding for enumerated types. (PR# ASN-1364)
  • Miscellaneous GUI fixes. (PR# ASN-1354)
  • Fixed Java code generation for ENUMERATION elements in SEQUENCE types whose default values were improperly set. (PR# ASN-1340)
  • Updated C# XML encoding to remove null bytes from input strings. (PR# ASN-1332)
  • Fixed a segmentation fault triggered by compiling X.509 specifications. (PR# ASN-1329)
  • Fixed a bug in C++ XER decoding of ASN.1 INTEGER types with named number identifiers.
  • Fixed a bug in the XML pull-parser in which it was not detecting well-formedness errors when control characters were embedded in the document. (PR# XBI-698)

New items in the initial 6.1.0 release include:

  • Support for Visual Studio 2008.
  • Support for Symbian OS.
  • Upgrade of Java code generation to be Java 5 compliant.
  • Generation of Ant build.xml files for Java.
  • Configuration of repeating types (SEQUENCE OF) in Java to use linked lists instead of arrays
  • Use of Singletons for Enumerations in Java and C#
  • C# reader/writer and test code generation
  • Capability to configure strings to use fixed-sized character arrays
  • Use of Module Object Identifiers in IMPORT's processing
  • Parsing of ISO 8601 Date/Time as per X.680 Amendment 3