Using negative cache index

Ildar Ismagilov devix84 at ...9...
Tue Oct 16 10:33:13 CEST 2012


In function Req_cache::remove on ports-foc/src/lib/l4lx/genode_block.cc file:

void remove(void *packet, void **request)
{
   int idx = _find(packet);

   if (idx < 0) {
         *request = 0;
          PERR("Req cache entry not found!");
    }
    *request = _cache[idx].req; // <--- if idx is -1, this negative
index used for access _cache array elements
     _cache[idx].pkt = 0;
     _cache[idx].req = 0;
}

should be:

void remove(void *packet, void **request)
{
   int idx = _find(packet);

   if (idx < 0) {
         *request = 0;
          PERR("Req cache entry not found!");
    }
    else {
         *request = _cache[idx].req;
         _cache[idx].pkt = 0;
         _cache[idx].req = 0;
    }
}

-- 
Best regards
Ildar




More information about the users mailing list