public synchronized ATermBlob makeBlob(byte[] data)
public ATermBlob makeBlob(byte[] data)
  public synchronized ATermBlob makeBlob(byte[] data)  {    ATerm term;    int hnr = ATermBlobImpl.hashFunction(data);    int idx = hnr % term_table_size;    HashedWeakRef prev, cur;    prev = null;    cur  = term_table[idx];    while (cur != null) {      term = (ATerm)cur.get();      if (term == null) {	// Found a reference to a garbage collected term, remove it to speed up lookups.	if (prev == null) {	  term_table[idx] = cur.next;	} else {	  prev.next = cur.next;	}      } else {	if (term.getType() == ATerm.BLOB) {	  ATermBlob blob = (ATermBlob)term;	  if (blob.getBlobData() == data) {	    return blob;	  }	}      }      cur = cur.next;    }        // No existing term found, so let's create one!    term = new ATermBlobImpl(this, data);    cur = new HashedWeakRef(term, term_table[idx]);    term_table[idx] = cur;    return (ATermBlob)term;  }