git-svn-id: http://ltt.polymtl.ca/svn@121 04897980-b3bd-0310-b5e0-8ef037075253
authoryangxx <yangxx@04897980-b3bd-0310-b5e0-8ef037075253>
Fri, 18 Jul 2003 20:30:22 +0000 (20:30 +0000)
committeryangxx <yangxx@04897980-b3bd-0310-b5e0-8ef037075253>
Fri, 18 Jul 2003 20:30:22 +0000 (20:30 +0000)
ltt/branches/poly/ltt/tracefile.c

index ea07019b74aff0891a29823857864f2d71739234..9f66cc8032639736813cb204a9435c6ccf958775 100644 (file)
@@ -790,7 +790,8 @@ LttEvent *ltt_tracefile_read(LttTracefile *t)
 
   //update the fields of the current event and go to the next event
   err = skipEvent(t);
-  if(err == ENOENT) return NULL;
+  if(err == ENOMEM) return NULL;
+  if(err == ENOENT) return lttEvent;
   if(err == ERANGE) g_error("event id is out of range\n");
   if(err)g_error("Can not read tracefile\n");
 
@@ -904,7 +905,8 @@ void updateTracefile(LttTracefile * tf)
  *    0               : success
  *    EINVAL          : lseek fail
  *    EIO             : can not read from the file
- *    ENOENT          : end of file
+ *    ENOMEM          : end of file
+ *    ENOENT          : last event
  *    ERANGE          : event id is out of range
  ****************************************************************************/
 
@@ -914,6 +916,14 @@ int skipEvent(LttTracefile * t)
   void * evData;
   LttEventType * evT;
   LttField * rootFld;
+  static int evCount = 0;
+
+  if(evCount){
+    if(t->which_block == t->block_number && 
+       evCount == t->which_event){
+      return ENOMEM;
+    }else evCount = 0;
+  }
 
   evId   = (int)(*(uint16_t *)(t->cur_event_pos));
   evData = t->cur_event_pos + EVENT_HEADER_SIZE;
@@ -946,7 +956,11 @@ int skipEvent(LttTracefile * t)
   
   //the next event is in the next block
   if(evId == TRACE_BLOCK_END){
-    if(t->which_block == t->block_number) return ENOENT;
+    if(t->which_block == t->block_number){
+      t->which_event++;
+      evCount = t->which_event;
+      return ENOENT;
+    }
     err = readBlock(t, t->which_block + 1);
     if(err) return err;
   }else{
This page took 0.024894 seconds and 4 git commands to generate.