[Newbies] More than 256 literals referenced.

Bert Freudenberg bert at freudenbergs.de
Mon Jul 23 21:26:23 UTC 2007


On Jul 23, 2007, at 22:47 , Robert Stehwien wrote:

> What is the source of the error produced by the following code?
> ----------
> initialize
> 	table := OrderedCollection new.
>
> 	"there  are 100 entries like what is below"
>
> 	table add: ({
> 		#value->2.
> 		#cost->-3.
> 		#step->2.
> 		#defense->3.
> 		#combatMove->7.
> 		#fullMove->14.
> 		#carry->10.
> 		#lift->20.
> 		#death->20.
> 		#unconscious->11.
> 		#woundThreshold->4.
> 		#recovery->0.5.
> 		#mysticArmor->0.
> 	} as: Dictionary).
> ----------
> More than 256 literals referenced.
> You must split or otherwise simplify this method.
> The 257th literal is: 4360
> ----------
>
> I'm trying to create a data table for a program and I'm wondering if
> I'm limited to 256 literals per class or method.  I tried initilizing
> the table in multiple methods (setting 50 per method) but get the same
> error.

The limit is 256 literals per method. However, a literal array is  
still just one literal. So you can put all your data into one literal  
if you want:

	#((
		value 2
		cost -3
		step 2
		defense 3
		combatMove 7
		fullMove 14
		carry 10
		lift 20
		death 20
		unconscious 11
		woundThreshold 4
		recovery 05
		mysticArmor 0
	) (
		value 2
		cost -3
		step 2
		defense 3
		combatMove 7
		fullMove 14
		carry 10
		lift 20
		death 20
		unconscious 11
		woundThreshold 4
		recovery 05
		mysticArmor 0
	) )

Then just iterate over it (#do: for the outer array, #pairsDo: is  
handy for the inner) to construct your objects. Btw, you surely would  
like to make a class and not just use dictionaries ;)

- Bert -




More information about the Beginners mailing list