- c1r[m].Class2Record = NULL;
-
- if ( ALLOC_ARRAY( c1r[m].Class2Record, count2, HB_Class2Record ) )
- goto Fail1;
-
- c2r = c1r[m].Class2Record;
-
- for ( n = 0; n < count2; n++ )
- {
- if ( format1 )
- {
- error = Load_ValueRecord( &c2r[n].Value1, format1,
- base_offset, stream );
- if ( error )
- goto Fail0;
- }
- if ( format2 )
- {
- error = Load_ValueRecord( &c2r[n].Value2, format2,
- base_offset, stream );
- if ( error )
- {
- if ( format1 )
- Free_ValueRecord( &c2r[n].Value1, format1 );
- goto Fail0;
- }
- }
+ c1r[m].IsFlexible = use_flexible_value_records;
+ if ( use_flexible_value_records ) {
+ c1r[m].c2r.ValueRecords = NULL;
+
+ if ( ALLOC_ARRAY( c1r[m].c2r.ValueRecords, count2 * cls2_record_size, HB_UShort ) )
+ goto Fail1;
+
+ vr = c1r[m].c2r.ValueRecords;
+
+ if ( ACCESS_Frame( count2 * cls2_record_size * 2L ))
+ goto Fail1;
+
+ for ( n = 0; n < count2 * cls2_record_size; n++ )
+ vr[n] = GET_Short();
+
+ FORGET_Frame();
+ } else {
+ c1r[m].c2r.Class2Record = NULL;
+
+ if ( ALLOC_ARRAY( c1r[m].c2r.Class2Record, count2, HB_Class2Record ) )
+ goto Fail1;
+
+ c2r = c1r[m].c2r.Class2Record;
+ for ( n = 0; n < count2; n++ )
+ {
+ if ( format1 )
+ {
+ error = Load_ValueRecord( &c2r[n].Value1, format1,
+ base_offset, stream );
+ if ( error )
+ goto Fail0;
+ }
+ if ( format2 )
+ {
+ error = Load_ValueRecord( &c2r[n].Value2, format2,
+ base_offset, stream );
+ if ( error )
+ {
+ if ( format1 )
+ Free_ValueRecord( &c2r[n].Value1, format1 );
+ goto Fail0;
+ }
+ }
+ }