Change (correct) SkImageRef's ownership rule for streams to the skia standard
pattern: the receiver will call ref() if it chooses when passed to a constructor
or setter, so the caller must balance its ownership itself. This matches how all
other refcnt objects are handled.
git-svn-id: http://skia.googlecode.com/svn/trunk@120 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleBitmapRect.cpp b/samplecode/SampleBitmapRect.cpp
index f164e06..ea6c705 100644
--- a/samplecode/SampleBitmapRect.cpp
+++ b/samplecode/SampleBitmapRect.cpp
@@ -15,7 +15,6 @@
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkImageRef.h"
#include "SkOSFile.h"
#include "SkStream.h"
diff --git a/samplecode/SampleEncode.cpp b/samplecode/SampleEncode.cpp
index e4197bf..31ddb8b 100644
--- a/samplecode/SampleEncode.cpp
+++ b/samplecode/SampleEncode.cpp
@@ -3,6 +3,7 @@
#include "SkCanvas.h"
#include "SkGradientShader.h"
#include "SkGraphics.h"
+#include "SkImageDecoder.h"
#include "SkImageEncoder.h"
#include "SkPath.h"
#include "SkPorterDuff.h"
@@ -15,7 +16,6 @@
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkImageRef.h"
#include "SkStream.h"
static void make_image(SkBitmap* bm, SkBitmap::Config config, int configIndex) {
diff --git a/samplecode/SampleFontScalerTest.cpp b/samplecode/SampleFontScalerTest.cpp
index 356ab39..81dd60d 100644
--- a/samplecode/SampleFontScalerTest.cpp
+++ b/samplecode/SampleFontScalerTest.cpp
@@ -70,6 +70,9 @@
virtual void onDraw(SkCanvas* canvas) {
this->drawBG(canvas);
+
+ canvas->translate(200, 20);
+ canvas->rotate(30);
SkPaint paint;
paint.setAntiAlias(true);
diff --git a/samplecode/SampleImage.cpp b/samplecode/SampleImage.cpp
index 4cefd27..7683e63 100644
--- a/samplecode/SampleImage.cpp
+++ b/samplecode/SampleImage.cpp
@@ -23,7 +23,6 @@
"2.bmp", "2.gif", "2.jpg", "2.png"
};
-// ownership of the stream is transferred
static bool SetImageRef(SkBitmap* bitmap, SkStream* stream,
SkBitmap::Config pref, const char name[] = NULL)
{
@@ -36,7 +35,6 @@
bitmap->setPixelRef(ref)->unref();
return true;
} else {
- delete stream;
return false;
}
}
@@ -60,6 +58,7 @@
SetImageRef(&fBitmaps[i], stream, SkBitmap::kNo_Config, gNames[i]);
if (i & 1)
fBitmaps[i].buildMipMap();
+ stream->unref();
}
fShader = SkShader::CreateBitmapShader(fBitmaps[5],
diff --git a/samplecode/SampleImageDir.cpp b/samplecode/SampleImageDir.cpp
index 32a719b..922910c 100644
--- a/samplecode/SampleImageDir.cpp
+++ b/samplecode/SampleImageDir.cpp
@@ -91,7 +91,6 @@
canvas.drawRoundRect(r, SkFloatToFixed(91.756363), SkFloatToFixed(91.756363), paint);
}
-// ownership of the stream is transferred
static bool SetImageRef(SkBitmap* bitmap, SkStream* stream,
SkBitmap::Config pref, const char name[] = NULL) {
#if 0
@@ -142,6 +141,7 @@
#if 1
SkStream* stream = new SkFILEStream(SPECIFIC_IMAGE);
SetImageRef(&fBitmaps[i], stream, configs[i], SPECIFIC_IMAGE);
+ stream->unref();
#else
SkImageDecoder::DecodeFile(SPECIFIC_IMAGE, &fBitmaps[i]);
#endif
@@ -164,6 +164,7 @@
SetImageRef(&fBitmaps[i], stream, SkBitmap::kNo_Config,
name.c_str());
+ stream->unref();
fStrings[i] = name;
}
fBitmapCount = N;
diff --git a/samplecode/SamplePatch.cpp b/samplecode/SamplePatch.cpp
index 77bd332..919c251 100644
--- a/samplecode/SamplePatch.cpp
+++ b/samplecode/SamplePatch.cpp
@@ -16,7 +16,6 @@
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkImageRef.h"
#include "SkOSFile.h"
#include "SkStream.h"
diff --git a/samplecode/SampleTextAlpha.cpp b/samplecode/SampleTextAlpha.cpp
index d695f23..629056b 100644
--- a/samplecode/SampleTextAlpha.cpp
+++ b/samplecode/SampleTextAlpha.cpp
@@ -17,7 +17,6 @@
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkImageRef.h"
#include "SkOSFile.h"
#include "SkStream.h"
diff --git a/samplecode/SampleVertices.cpp b/samplecode/SampleVertices.cpp
index 637c661..fcd9628 100644
--- a/samplecode/SampleVertices.cpp
+++ b/samplecode/SampleVertices.cpp
@@ -16,7 +16,6 @@
#include "SkTime.h"
#include "SkTypeface.h"
-#include "SkImageRef.h"
#include "SkOSFile.h"
#include "SkStream.h"
#include "SkNinePatch.h"