+ if isinstance(key, int):
+ # Find string by index
+ if key in self.by_index:
+ # Already computed, return it
+ return self.by_index[key]
+ else:
+ # It references a substring
+ v = self.data[key:].tostring().split('\0')[0]
+ self.by_index[key] = v
+ self.by_name[v] = key
+ return v