use sk_bzero instead of bzero, since it isn't always available.



git-svn-id: http://skia.googlecode.com/svn/trunk@244 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/SkSetPoly3To3.cpp b/experimental/SkSetPoly3To3.cpp
index 1420eba..a19c5e5 100644
--- a/experimental/SkSetPoly3To3.cpp
+++ b/experimental/SkSetPoly3To3.cpp
@@ -3,7 +3,7 @@
 static void computeOuterProduct(SkScalar op[4],
                                 const SkPoint pts0[3], const SkPoint& ave0,
                                 const SkPoint pts1[3], const SkPoint& ave1) {
-    bzero(op, 4 * sizeof(op[0]));
+    sk_bzero(op, 4 * sizeof(op[0]));
     for (int i = 0; i < 3; i++) {
         SkScalar x0 = pts0[i].fX - ave0.fX;
         SkScalar y0 = pts0[i].fY - ave0.fY;
diff --git a/experimental/SkSetPoly3To3_A.cpp b/experimental/SkSetPoly3To3_A.cpp
index cc953f5..d79703b 100644
--- a/experimental/SkSetPoly3To3_A.cpp
+++ b/experimental/SkSetPoly3To3_A.cpp
@@ -31,7 +31,7 @@
 static void computeOuterProduct(SkScalar op[4],
                                 const SkPoint pts0[3], const SkPoint& ave0,
                                 const SkPoint pts1[3], const SkPoint& ave1) {
-    bzero(op, 4 * sizeof(op[0]));
+    sk_bzero(op, 4 * sizeof(op[0]));
     for (int i = 0; i < 3; i++) {
         SkScalar x0 = pts0[i].fX - ave0.fX;
         SkScalar y0 = pts0[i].fY - ave0.fY;
diff --git a/experimental/SkSetPoly3To3_D.cpp b/experimental/SkSetPoly3To3_D.cpp
index 72ee9b1..47c0946 100644
--- a/experimental/SkSetPoly3To3_D.cpp
+++ b/experimental/SkSetPoly3To3_D.cpp
@@ -17,7 +17,7 @@
                                 const SkPoint pts0[3], const SkPoint& ave0,
                                 const SkPoint pts1[3], const SkPoint& ave1) {
     SkDScalar tmp[4];
-    bzero(tmp, sizeof(tmp));
+    sk_bzero(tmp, sizeof(tmp));
     
     for (int i = 0; i < 3; i++) {
         SkScalar x0 = pts0[i].fX - ave0.fX;
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index 0554c73..00ecb6f 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -65,6 +65,11 @@
 */
 extern void  sk_free(void*);
 
+// bzero is safer than memset, but we can't rely on it, so... sk_bzero()
+static inline void sk_bzero(void* buffer, size_t size) {
+    memset(buffer, 0, size);
+}
+
 ///////////////////////////////////////////////////////////////////////
 
 #define SK_INIT_TO_AVOID_WARNING    = 0
diff --git a/samplecode/SamplePatch.cpp b/samplecode/SamplePatch.cpp
index 4669630..3f898bc 100644
--- a/samplecode/SamplePatch.cpp
+++ b/samplecode/SamplePatch.cpp
@@ -52,7 +52,7 @@
 
 class Patch {
 public:
-    Patch() { bzero(fPts, sizeof(fPts)); }
+    Patch() { sk_bzero(fPts, sizeof(fPts)); }
     ~Patch() {}
     
     void setPatch(const SkPoint pts[12]) {
diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp
index 2513b51..5ee4c56 100644
--- a/src/core/SkBitmap.cpp
+++ b/src/core/SkBitmap.cpp
@@ -84,12 +84,12 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 SkBitmap::SkBitmap() {
-    bzero(this, sizeof(*this));
+    sk_bzero(this, sizeof(*this));
 }
 
 SkBitmap::SkBitmap(const SkBitmap& src) {
     SkDEBUGCODE(src.validate();)
-    bzero(this, sizeof(*this));
+    sk_bzero(this, sizeof(*this));
     *this = src;
     SkDEBUGCODE(this->validate();)
 }
@@ -153,7 +153,7 @@
 
 void SkBitmap::reset() {
     this->freePixels();
-    bzero(this, sizeof(*this));
+    sk_bzero(this, sizeof(*this));
 }
 
 int SkBitmap::ComputeBytesPerPixel(SkBitmap::Config config) {
@@ -1319,7 +1319,7 @@
 SkBitmap::RLEPixels::RLEPixels(int width, int height) {
     fHeight = height;
     fYPtrs = (uint8_t**)sk_malloc_throw(height * sizeof(uint8_t*));
-    bzero(fYPtrs, height * sizeof(uint8_t*));
+    sk_bzero(fYPtrs, height * sizeof(uint8_t*));
 }
 
 SkBitmap::RLEPixels::~RLEPixels() {
diff --git a/src/core/SkConcaveToTriangles.cpp b/src/core/SkConcaveToTriangles.cpp
index efad528..fa718e5 100644
--- a/src/core/SkConcaveToTriangles.cpp
+++ b/src/core/SkConcaveToTriangles.cpp
@@ -687,7 +687,7 @@
 
     // Clear everything.
     DebugPrintf("Zeroing vertices\n");
-    bzero(vta, numPts * sizeof(*vta));
+    sk_bzero(vta, numPts * sizeof(*vta));
 
     // Initialize vertices.
     DebugPrintf("Initializing vertices\n");
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
index fa3eb55..c4ea43a 100644
--- a/src/core/SkDraw.cpp
+++ b/src/core/SkDraw.cpp
@@ -151,7 +151,7 @@
 typedef void (*BitmapXferProc)(void* pixels, size_t bytes, uint32_t data);
 
 static void D_Clear_BitmapXferProc(void* pixels, size_t bytes, uint32_t) {
-    bzero(pixels, bytes);
+    sk_bzero(pixels, bytes);
 }
 
 static void D_Dst_BitmapXferProc(void*, size_t, uint32_t data) {}
diff --git a/src/core/SkMatrix.cpp b/src/core/SkMatrix.cpp
index 48fa804..3d2712b 100644
--- a/src/core/SkMatrix.cpp
+++ b/src/core/SkMatrix.cpp
@@ -397,7 +397,7 @@
     }
 
     if (dst.isEmpty()) {
-        bzero(fMat, 8 * sizeof(SkScalar));
+        sk_bzero(fMat, 8 * sizeof(SkScalar));
         this->setTypeMask(kScale_Mask | kRectStaysRect_Mask);
     } else {
         SkScalar    tx, sx = SkScalarDiv(dst.width(), src.width());
diff --git a/src/core/SkPictureFlat.cpp b/src/core/SkPictureFlat.cpp
index e221e55..3b02752 100644
--- a/src/core/SkPictureFlat.cpp
+++ b/src/core/SkPictureFlat.cpp
@@ -246,7 +246,7 @@
     
     fCount = count;
     fArray = SkNEW_ARRAY(SkRefCnt*, count);
-    bzero(fArray, count * sizeof(SkRefCnt*));
+    sk_bzero(fArray, count * sizeof(SkRefCnt*));
 }
 
 SkRefCnt* SkRefCntPlayback::set(int index, SkRefCnt* obj) {
diff --git a/src/core/SkRect.cpp b/src/core/SkRect.cpp
index d602754..7d73249 100644
--- a/src/core/SkRect.cpp
+++ b/src/core/SkRect.cpp
@@ -67,7 +67,7 @@
     SkASSERT((pts && count > 0) || count == 0);
 
     if (count <= 0) {
-        bzero(this, sizeof(SkRect));
+        sk_bzero(this, sizeof(SkRect));
     } else {
 #ifdef SK_SCALAR_SLOW_COMPARES
         int32_t    l, t, r, b;
diff --git a/src/core/SkScalerContext.cpp b/src/core/SkScalerContext.cpp
index cc3eb1a..7d66c2a 100644
--- a/src/core/SkScalerContext.cpp
+++ b/src/core/SkScalerContext.cpp
@@ -334,7 +334,7 @@
             
             glyph->toMask(&mask);
             mask.fFormat = SkMask::kA8_Format;
-            bzero(glyph->fImage, mask.computeImageSize());
+            sk_bzero(glyph->fImage, mask.computeImageSize());
             
             if (!fRasterizer->rasterize(fillPath, fillToDevMatrix, NULL,
                                         fMaskFilter, &mask,
@@ -364,7 +364,7 @@
             bm.setConfig(config, glyph->fWidth, glyph->fHeight,
                          glyph->rowBytes());
             bm.setPixels(glyph->fImage);
-            bzero(glyph->fImage, bm.height() * bm.rowBytes());
+            sk_bzero(glyph->fImage, bm.height() * bm.rowBytes());
 
             draw.fClip  = &clip;
             draw.fMatrix = &matrix;
@@ -400,7 +400,7 @@
             }
 
             // clean out our glyph, since it may be larger than dstM
-            //bzero(dst, height * dstRB);
+            //sk_bzero(dst, height * dstRB);
 
             while (--height >= 0) {
                 memcpy(dst, src, width);
@@ -576,10 +576,10 @@
     virtual void generateFontMetrics(SkPaint::FontMetrics* mx,
                                      SkPaint::FontMetrics* my) {
         if (mx) {
-            bzero(mx, sizeof(*mx));
+            sk_bzero(mx, sizeof(*mx));
         }
         if (my) {
-            bzero(my, sizeof(*my));
+            sk_bzero(my, sizeof(*my));
         }
     }
 };
diff --git a/src/gl/SkGL.cpp b/src/gl/SkGL.cpp
index 89bcdf4..1fce98f 100644
--- a/src/gl/SkGL.cpp
+++ b/src/gl/SkGL.cpp
@@ -120,7 +120,7 @@
     
     float mat[16];
     
-    bzero(mat, sizeof(mat));
+    sk_bzero(mat, sizeof(mat));
     
     mat[0] = 2 / (right - left);
     mat[5] = 2 / (top - bottom);
diff --git a/src/gl/SkGL.h b/src/gl/SkGL.h
index dd2c77f..9f79ad1 100644
--- a/src/gl/SkGL.h
+++ b/src/gl/SkGL.h
@@ -193,12 +193,12 @@
     SkGLScalar fMat[16];
     
     void reset() {
-        bzero(fMat, sizeof(fMat));
+        sk_bzero(fMat, sizeof(fMat));
         fMat[0] = fMat[5] = fMat[10] = fMat[15] = SK_GLScalar1;
     }
     
     void set(const SkMatrix& m) {
-        bzero(fMat, sizeof(fMat));
+        sk_bzero(fMat, sizeof(fMat));
         fMat[0] = SkScalarToGL(m[SkMatrix::kMScaleX]);
         fMat[4] = SkScalarToGL(m[SkMatrix::kMSkewX]);
         fMat[12] = SkScalarToGL(m[SkMatrix::kMTransX]);
diff --git a/src/gl/SkGLTextCache.cpp b/src/gl/SkGLTextCache.cpp
index 141e100..2619dc8 100644
--- a/src/gl/SkGLTextCache.cpp
+++ b/src/gl/SkGLTextCache.cpp
@@ -127,7 +127,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 SkGLTextCache::SkGLTextCache() {
-    bzero(fStrikeList, sizeof(fStrikeList));
+    sk_bzero(fStrikeList, sizeof(fStrikeList));
 }
 
 SkGLTextCache::~SkGLTextCache() {
@@ -146,7 +146,7 @@
             strike = next;
         }
     }
-    bzero(fStrikeList, sizeof(fStrikeList));
+    sk_bzero(fStrikeList, sizeof(fStrikeList));
 }
 
 SkGLTextCache::Strike* SkGLTextCache::findGlyph(const SkGlyph& glyph,
diff --git a/src/gl/SkTextureCache.cpp b/src/gl/SkTextureCache.cpp
index 17b37ca..2eb5d84 100644
--- a/src/gl/SkTextureCache.cpp
+++ b/src/gl/SkTextureCache.cpp
@@ -23,7 +23,7 @@
           fTexCountMax(countMax), fTexSizeMax(sizeMax),
           fTexCount(0), fTexSize(0) {
 
-    bzero(fHash, sizeof(fHash));
+    sk_bzero(fHash, sizeof(fHash));
     this->validate();
 }
 
@@ -52,7 +52,7 @@
     }
     
     fSorted.reset();
-    bzero(fHash, sizeof(fHash));
+    sk_bzero(fHash, sizeof(fHash));
     
     fTexCount = 0;
     fTexSize = 0;
diff --git a/src/images/SkImageDecoder_libpvjpeg.cpp b/src/images/SkImageDecoder_libpvjpeg.cpp
index 9177741..b98763e 100644
--- a/src/images/SkImageDecoder_libpvjpeg.cpp
+++ b/src/images/SkImageDecoder_libpvjpeg.cpp
@@ -107,7 +107,7 @@
     TPvJpgDecFrame frame;
     uint8*         ptrs[3];
     int32          widths[3], heights[3];
-    bzero(ptrs, sizeof(ptrs));
+    sk_bzero(ptrs, sizeof(ptrs));
     frame.ptr = ptrs;
     frame.iWidth = widths;
     frame.iHeight = heights;
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp
index 7aa14b2..b30aba5 100644
--- a/src/ports/SkFontHost_FreeType.cpp
+++ b/src/ports/SkFontHost_FreeType.cpp
@@ -156,7 +156,7 @@
         : fSkStream(strm), fFontID(fontID) {
 //    SkDEBUGF(("SkFaceRec: opening %s (%p)\n", key.c_str(), strm));
 
-    bzero(&fFTStream, sizeof(fFTStream));
+    sk_bzero(&fFTStream, sizeof(fFTStream));
     fFTStream.size = fSkStream->getLength();
     fFTStream.descriptor.pointer = fSkStream;
     fFTStream.read  = sk_stream_read;
@@ -754,10 +754,10 @@
     if (this->setupSize()) {
         ERROR:
         if (mx) {
-            bzero(mx, sizeof(SkPaint::FontMetrics));
+            sk_bzero(mx, sizeof(SkPaint::FontMetrics));
         }
         if (my) {
-            bzero(my, sizeof(SkPaint::FontMetrics));
+            sk_bzero(my, sizeof(SkPaint::FontMetrics));
         }
         return;
     }
diff --git a/src/ports/SkFontHost_mac.cpp b/src/ports/SkFontHost_mac.cpp
index e9dfc6a..5deae35 100755
--- a/src/ports/SkFontHost_mac.cpp
+++ b/src/ports/SkFontHost_mac.cpp
@@ -251,7 +251,7 @@
     SkAutoMutexAcquire  ac(gFTMutex);
     SkASSERT(fLayout);
     
-    bzero(glyph.fImage, glyph.fHeight * glyph.rowBytes());
+    sk_bzero(glyph.fImage, glyph.fHeight * glyph.rowBytes());
     CGContextRef contextRef = ::CGBitmapContextCreate(glyph.fImage,
                                               glyph.fWidth, glyph.fHeight, 8,
                                               glyph.rowBytes(), fGrayColorSpace,
diff --git a/tests/Test.cpp b/tests/Test.cpp
index 2de0183..4bbe83a 100644
--- a/tests/Test.cpp
+++ b/tests/Test.cpp
@@ -9,7 +9,7 @@
 void Reporter::resetReporting() {
     fCurrTest = NULL;
     fTestCount = 0;
-    bzero(fResultCount, sizeof(fResultCount));
+    sk_bzero(fResultCount, sizeof(fResultCount));
 }
 
 void Reporter::startTest(Test* test) {