diff --git a/tests/PixelRefTest.cpp b/tests/PixelRefTest.cpp
index f3625bd..ce2575e 100644
--- a/tests/PixelRefTest.cpp
+++ b/tests/PixelRefTest.cpp
@@ -17,35 +17,33 @@
 }  // namespace
 
 DEF_TEST(PixelRef_GenIDChange, r) {
-    SkImageInfo info = { 10, 10, kPMColor_SkColorType, kPremul_SkAlphaType };
-
-    SkAutoTUnref<SkPixelRef> pixelRef(SkMallocPixelRef::NewAllocate(info, 0, NULL));
+    SkMallocPixelRef pixelRef(NULL, 0, NULL);  // We don't really care about the pixels here.
 
     // Register a listener.
     int count = 0;
-    pixelRef->addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count)));
+    pixelRef.addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count)));
     REPORTER_ASSERT(r, 0 == count);
 
     // No one has looked at our pixelRef's generation ID, so invalidating it doesn't make sense.
     // (An SkPixelRef tree falls in the forest but there's nobody around to hear it.  Do we care?)
-    pixelRef->notifyPixelsChanged();
+    pixelRef.notifyPixelsChanged();
     REPORTER_ASSERT(r, 0 == count);
 
     // Force the generation ID to be calculated.
-    REPORTER_ASSERT(r, 0 != pixelRef->getGenerationID());
+    REPORTER_ASSERT(r, 0 != pixelRef.getGenerationID());
 
     // Our listener was dropped in the first call to notifyPixelsChanged().  This is a no-op.
-    pixelRef->notifyPixelsChanged();
+    pixelRef.notifyPixelsChanged();
     REPORTER_ASSERT(r, 0 == count);
 
     // Force the generation ID to be recalculated, then add a listener.
-    REPORTER_ASSERT(r, 0 != pixelRef->getGenerationID());
-    pixelRef->addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count)));
-    pixelRef->notifyPixelsChanged();
+    REPORTER_ASSERT(r, 0 != pixelRef.getGenerationID());
+    pixelRef.addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count)));
+    pixelRef.notifyPixelsChanged();
     REPORTER_ASSERT(r, 1 == count);
 
     // Quick check that NULL is safe.
-    REPORTER_ASSERT(r, 0 != pixelRef->getGenerationID());
-    pixelRef->addGenIDChangeListener(NULL);
-    pixelRef->notifyPixelsChanged();
+    REPORTER_ASSERT(r, 0 != pixelRef.getGenerationID());
+    pixelRef.addGenIDChangeListener(NULL);
+    pixelRef.notifyPixelsChanged();
 }
