void AnimationStateData_dispose (AnimationStateData* self) {
	_FromEntry* fromEntry = (_FromEntry*)self->entries;
	while (fromEntry) {
		_ToEntry* toEntry = fromEntry->toEntries;
		while (toEntry) {
			_ToEntry* next = toEntry->next;
			_ToEntry_dispose(toEntry);
			toEntry = next;
		}
		_FromEntry* next = fromEntry->next;
		_FromEntry_dispose(fromEntry);
		fromEntry = next;
	}

	FREE(self);
}
void spAnimationStateData_dispose (spAnimationStateData* self) {
	_ToEntry* toEntry;
	_ToEntry* nextToEntry;
	_FromEntry* nextFromEntry;

	_FromEntry* fromEntry = (_FromEntry*)self->entries;
	while (fromEntry) {
		toEntry = fromEntry->toEntries;
		while (toEntry) {
			nextToEntry = toEntry->next;
			_ToEntry_dispose(toEntry);
			toEntry = nextToEntry;
		}
		nextFromEntry = fromEntry->next;
		_FromEntry_dispose(fromEntry);
		fromEntry = nextFromEntry;
	}
	FREE(self);
}