void PushBack(pSeqList pseq, DataType x) { CheckCapacity(pseq); if (pseq->size == MAX) { printf("˳Ðò±íÒÑÂú\n"); return; } CheckCapacity(pseq); pseq->list[pseq->size] = x; pseq->size++; }
TNode *ReadTip(FILE *fv, char ch, TTree *tree, int numNames, char **names) { int i; char *P; char name[256]; TNode *node; node=NewNode(tree); i=0; P=name; while (!feof(fv) && ch!=':' && ch!=',' && ch!=')' && i<MAX_NAME_LEN) { if (!isspace(ch)) { *P=ch; i++;P++; } ch=fgetc(fv); } *P='\0'; CheckCapacity(tree, tree->numTips+1); if (numNames == 0) { node->tipNo=tree->numTips; if (tree->names[node->tipNo]==NULL) { if ( (tree->names[node->tipNo]=(char *)malloc(MAX_NAME_LEN+1))==NULL ) { strcpy(treeErrorMsg, "Out of memory creating name."); return NULL; } } strcpy(tree->names[node->tipNo], name); } else { /* we already have some names so just look it up...*/ i = 0; while (i < numNames && strcmp(name, names[i]) != 0) i++; if (i == numNames) { sprintf(treeErrorMsg, "Taxon names in trees for different partitions do not match."); return NULL; } node->tipNo=i; } tree->tips[node->tipNo]=node; tree->numTips++; while (!feof(fv) && ch!=':' && ch!=',' && ch!=')') ch=fgetc(fv); if (feof(fv)) { sprintf(treeErrorMsg, "Unexpected end of file"); return NULL; } ungetc(ch, fv); return node; }
void PushBack(pSeq pseq, DataType x) { assert(pseq); CheckCapacity(pseq); pseq->data[pseq->size] = x; pseq->size++; }
TObject* TreeBranch::NewEntry() { INFO(clones_array_.GetName()); CheckCapacity(); auto * object = clones_array_.AddrAt(position_++); CHECK(object, "not object to write to"); return object; }
int32_t WriteBytes(Buffer* buf, const void* bytes, uint32_t count) { my_assert(buf->_read_pos == 0); if (CheckCapacity(buf, count)) return -1; memcpy(buf->_data + buf->_write_pos, bytes, count); buf->_write_pos += count; return 0; }
/*---------------------------------------------------------------------------*/ int32_t WriteByte(Buffer* buf, uint8_t byte) { my_assert(buf->_read_pos == 0); if (CheckCapacity(buf, 1)) return -1; buf->_data[buf->_write_pos] = byte; buf->_write_pos++; return 0; }
void PushFront(pSeq pseq, DataType x) { int i; assert(pseq); CheckCapacity(pseq); for(i = pseq->size-1; i >= 0; i--) { pseq->data[i+1] = pseq->data[i]; } pseq->data[0] = x; pseq->size++; }
/*----------*/ TTree *NewTree() { TTree *tree; if ( (tree=(TTree *)malloc(sizeof(TTree)))==NULL ) { strcpy(treeErrorMsg, "Out of memory creating tree."); return NULL; } memset(tree, 0, sizeof(TTree)); /* grj */ tree->capacity=0; CheckCapacity(tree, 1000); InitTree(tree); return tree; } /* NewTree */
void PushFront(pSeqList pseq, DataType x) { int i = 0; if (pseq->size == MAX) { printf("˳Ðò±íÒÑÂú\n"); return; } CheckCapacity(pseq); for (i = pseq->size; i > 0; i--) { pseq->list[i] = pseq->list[i - 1]; } pseq->list[0] = x; pseq->size++; }
void Insert(pSeqList pseq, int pos, DataType x) { int i = 0; if (pseq->size == MAX) { printf("˳Ðò±íÒÑÂú\n"); return; } CheckCapacity(pseq); for (i = pseq->size; i > pos; i--) { pseq->list[i] = pseq->list[i - 1]; } pseq->list[pos] = x; pseq->size++; }