in src/annoylib.h [987:1010]
bool add_item_impl(S item, const W& w, char** error=NULL) {
if (_loaded) {
set_error_from_string(error, "You can't add an item to a loaded index");
return false;
}
_allocate_size(item + 1);
Node* n = _get(item);
D::zero_value(n);
n->children[0] = 0;
n->children[1] = 0;
n->n_descendants = 1;
for (int z = 0; z < _f; z++)
n->v[z] = w[z];
D::init_node(n, _f);
if (item >= _n_items)
_n_items = item + 1;
return true;
}