5234cfcb4a8b7c971f749002bfa4c26ff6f05804 hiram Tue May 5 11:33:58 2020 -0700 fixup needLargeMem argument type to get this to work with SARS MERS alignment no redmine diff --git src/lib/pairHmm.c src/lib/pairHmm.c index 67eda43..587a914 100644 --- src/lib/pairHmm.c +++ src/lib/pairHmm.c @@ -14,49 +14,49 @@ void phmmUnpackMommy(UBYTE mommy, int *retStateIx, int *retQoff, int *retToff) /* Unpack state, query, and target offset. */ { *retStateIx = (mommy&31); *retQoff = -((mommy&32)>>5); *retToff = -((mommy&64)>>6); } struct phmmMatrix *phmmMatrixNew(int stateCount, char *query, int querySize, char *target, int targetSize) /* Allocate all memory required for an phmmMatrix. Set up dimensions. */ { int i; struct phmmMommy *allCells; -int allCellSize; +size_t allCellSize; int rowSize; int *allScores; struct phmmMatrix *am; AllocVar(am); am->query = query; am->target = target; am->querySize = querySize; am->targetSize = targetSize; am->qDim = rowSize = am->querySize + 1; am->tDim = am->targetSize + 1; am->stateCount = stateCount; am->stateSize = rowSize * am->tDim; am->stateByteSize = am->stateSize * sizeof(struct phmmMommy); am->states = needMem(stateCount * sizeof(struct phmmState)); /* Initialize matrix of cells for each state. */ -allCellSize = stateCount * am->stateByteSize; +allCellSize = (size_t)stateCount * (size_t)am->stateByteSize; am->allCells = allCells = needLargeMem(allCellSize); memset(allCells, 0, allCellSize); for (i=0; i<stateCount; ++i) { am->states[i].cells = allCells; allCells += am->stateSize; am->states[i].stateIx = i; } /* Initialize two rows of scores for each state. */ allScores = am->allScores = needMem(rowSize * 2 * stateCount * sizeof(int) ); for (i=0; i<stateCount; ++i) { am->states[i].scores = allScores; allScores += rowSize;