bool palIListTest()
{
  int_container i1,i2,i3,i4;

  i1.z = 1;
  i2.z = 2;
  i3.z = 3;
  i4.z = 4;

  palIList ilist_head;

  ilist_head.AddHead(&i1.list_node);
  ilist_head.AddHead(&i2.list_node);
  ilist_head.AddHead(&i3.list_node);
  ilist_head.AddHead(&i4.list_node);

  palIListForeachDeclare(int_container, list_node) fe(&ilist_head);

  while (fe.Finished() == false)
  {
    int_container* list_entry = fe.GetListEntry();
    printf("%d\n", list_entry->z);
    fe.Next();
  }

  return true;
}
Exemple #2
0
void palTimerEventManager::StepTimers(palTimerTick tick) {
  palIListForeachDeclare(palTimerEvent, list_node) fe(&list_head);

  while (fe.Finished() == false) {
    palTimerEvent* event = fe.GetListEntry();
    if (event->IsEnabled()) {
      event->Step(tick);
    }
    fe.Next();
  }
}
bool palIListSortTest() {
  int_container a,b,c,d,e,f,g;

  a.z = palGenerateRandom();
  b.z = palGenerateRandom();
  c.z = palGenerateRandom();
  d.z = palGenerateRandom();
  e.z = palGenerateRandom();
  f.z = palGenerateRandom();
  g.z = palGenerateRandom();


  palIList ilist_head;

  ilist_head.AddHead(&a.list_node);
  ilist_head.AddHead(&b.list_node);
  ilist_head.AddHead(&c.list_node);
  ilist_head.AddHead(&d.list_node);
  ilist_head.AddHead(&e.list_node);
  ilist_head.AddHead(&f.list_node);
  ilist_head.AddHead(&g.list_node);

  palIListSorterDeclare(int_container, list_node) sorter(&ilist_head);
  palIListForeachDeclare(int_container, list_node) fe(&ilist_head);

  printf("Unsorted\n");
  while (fe.Finished() == false)
  {
    int_container* list_entry = fe.GetListEntry();
    printf("%d\n", list_entry->z);
    fe.Next();
  }

  sorter.Sort(int_container_compare);

  fe.First();
  
  printf("Sorted\n");
  while (fe.Finished() == false)
  {
    int_container* list_entry = fe.GetListEntry();
    printf("%d\n", list_entry->z);
    fe.Next();
  }

  return true;
}
void palTrackingAllocator::ConsoleDump() const {
    palIListForeachDeclare(palTrackedAllocation, list_node) fe(const_cast<palIList*>(&_tracked_allocations));
    if (fe.Finished()) {
        return;
    }
    palPrintf("Dumping leaks from %s\n", GetName());
    while (fe.Finished() == false) {
        palTrackedAllocation* list_entry = fe.GetListEntry();
        palPrintf("%p [%d]\n", list_entry->ptr, GetSize(list_entry->ptr));
        int i = 0;
        while (list_entry->stacktrace[i] != NULL) {
            palPrintf("        %d: %s %p\n", i, palDebugLookupSymbol(list_entry->stacktrace[i], MAX_SYMBOL_NAME_LENGTH, _symbol_lookup_buffer), list_entry->stacktrace[i]);
            i++;
        }
        fe.Next();
    }
}