Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Java Development

Vtable record size exceeds maximum record size

by Retired ‎02-17-2010 01:47 PM - edited ‎02-17-2010 01:49 PM (1,019 Views)

Summary


This article applies to the BlackBerry® Device Software 4.1 and later.




Problem


When you compile your application with Device Software 4.1 and later, you receive the following error:

Vtable record size of 65708 exceeds max record size of 65508


Cause


There are too many virtual methods in your class hierarchy.


Note: A virtual method is a function that, when overridden by a subclass, is used by the base class. Each sibling COD file contains virtual method tables (vtables) that must fit into a single record with a 64 KB limit. Each virtual method table needs two bytes per method; therefore, you receive this error when you have a COD file with a large number of classes and each class has a large virtual method table.


Resolution


To resolve this problem, do one of the following:

  • Reconsider your class hierarchy to reduce the number of classes. As a result, the number of virtual methods in the virtual method table are reduced.
  • Use the RAPC -vtablefull=nnn option to reduce the number of classes going into each member of a sibling component COD file set. The default value used by RAPC for this option is 61440. This option can reduce the number of classes in each sibling component, which increases the number of sibling components in your COD file. Therefore, an increase in the number of sibling components reduces the risk of having one sibling component exceed the maximum size of the virtual method table.


Additional Information

This RAPC option was introduced in BlackBerry Device Software 4.0.

Contributors
Users Online
Currently online: 29 members 5,814 guests
Please welcome our newest community members: