nsDeque secondDeque(&gDeallocator);
nsDeque secondDeque(new _Dealloc);
nsresult _TestDeque::OriginalFlaw() {  int ints[200];  int count=sizeof(ints)/sizeof(int);  int i=0;  int* temp;  nsDeque secondDeque(&gDeallocator);  /**   * Test 1. Origin near end, semi full, call Peek().   * you start, mCapacity is 8   */  printf("fill array\n");  for (i=32; i; --i)    ints[i]=i*3+10;  printf("push 6 times\n");  for (i=0; i<6; i++)    secondDeque.Push(&ints[i]);  printf("popfront 4 times:\n");  for (i=4; i; --i) {    temp=(int*)secondDeque.PopFront();    printf("%d\t",*temp);  }  printf("push 4 times\n");  for (int j=4; j; --j)    secondDeque.Push(&ints[++i]);  printf("origin should now be about 4\n");  printf("and size should be 6\n");  printf("origin+size>capacity\n");   /*<akk> Oh, I see ... it's a circular buffer */  printf("but the old code wasn't behaving accordingly.\n");   /*right*/  printf("we shouldn't crash or anything interesting, ");  temp=(int*)secondDeque.Peek();  printf("peek: %d\n",*temp);  return NS_OK;}