Hi Experts,
Here I have a problem in piece of code (Memore leak and dump. I am also
using CC malloc tool for finding exact point of leak.
If experts share your vies then this would be great help for me.

What you think ??

please don't go the coding style. just check the logic....
==============================================


  int                 i;
  int                 j;
  int                 n = 0;
  uint32              temp       = 0;
  uint8               bitpos     = 0;
  uint8               dchAmount  = dataDchUl->data.n;
  uint8               hdrCRC     = 0;
  uint16              trlCRC     = 0;
  uint8               writeBuffer[10];
  uint8               pduPos     = 0;
  BYTE_TYPE          *curPtr, *payloadPtr;


  if (*pdu != NULL)
    deleteFrame (pdu);

  *for (i = 0; i < dchAmount; i++)
                        //Dump is taking me at this point*
*    for (j = 0; j < dataDchUl->data.elem[i].tbs.tbnr; j++)*
*      n += frameLength (dataDchUl->data.elem[i].tbs.tbs.elem[j].data);*

  *pdu = createFrame(n + 2 + dchAmount /* header */ + 10 /* max. tail size
*/);
  curPtr = resnLastBytes(pdu, n + 2 + dchAmount /* header */ + 10 /* max.
tail size */);


  hdrCRC = FpCrc7_tab[dataDchUl->cfn    ^ hdrCRC];
  for (i = 0; i < dchAmount; i++) {
    hdrCRC = FpCrc7_tab[dataDchUl->data.elem[i].tfi ^ hdrCRC];
  }
  *curPtr++ = hdrCRC;
  *curPtr++ = dataDchUl->cfn;

  for (i = 0; i < dchAmount; i++)
    *curPtr++ = dataDchUl->data.elem[i].tfi

  payloadPtr = curPtr;
  for (i = 0; i < dchAmount; i++) {
    for (j = 0; j < dataDchUl->data.elem[i].tbs.tbnr; j++) {
      copyBytesToArray(dataDchUl->data.elem[i].tbs.tbs.elem[j].data,
curPtr);
      curPtr += frameLength(dataDchUl->data.elem[i].tbs.tbs.elem[j].data);
      deleteFrame (&dataDchUl->data.elem[i].tbs.tbs.elem[j].data);
    }
  }
  usenLastBytes(*pdu, n + 2 + dchAmount);

  writeBuffer[0] = dataDchUl->qe;
  pduPos = 1;


  temp   = 0;
  bitpos = 7;
  for (i = 0; i < dchAmount; i++) {
    for (j = 0; j < dataDchUl->data.elem[i].tbs.tbnr; j++) {
      if (bitpos == 7)
writeBuffer[pduPos] = 0;

      if (dataDchUl->data.elem[i].tbs.tbs.elem[j].crcStatus ==
crcError_e_L1CrcStatus) {
writeBuffer[pduPos] |= (1 << bitpos);
      }
      if (bitpos == 0) {
pduPos++;
bitpos = 7;
      }
      else
bitpos--;
    }
  }


  /* clear buffer */
  for (i = 0; i < dchAmount; i++) {
    dataDchUl->data.elem[i].tbs.tbnr  = 0;
    dataDchUl->data.elem[i].tbs.tbs.n = 0;
  }
  dataDchUl->data.n = 0;
========================================================================

TIA
-Ravi


[Non-text portions of this message have been removed]

Reply via email to