Minor changes to XPS device.



git-svn-id: http://skia.googlecode.com/svn/trunk@11552 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/device/xps/SkXPSDevice.cpp b/src/device/xps/SkXPSDevice.cpp
index 0881a0f..f837655 100644
--- a/src/device/xps/SkXPSDevice.cpp
+++ b/src/device/xps/SkXPSDevice.cpp
@@ -2051,6 +2051,7 @@
     SkTScopedComPtr<IStream> fontStream;
     int ttcIndex;
     SkStream* fontData = typeface->openStream(&ttcIndex);
+    //TODO: cannot handle FON fonts.
     HRM(SkIStream::CreateFromSkStream(fontData, true, &fontStream),
         "Could not create font stream.");
 
@@ -2286,6 +2287,7 @@
     HRV(CreateTypefaceUse(paint, &typeface));
 
     SkDraw myDraw(d);
+    myDraw.fMatrix = &SkMatrix::I();
     SkXPSDrawProcs procs;
     text_draw_init(paint, text, byteLen, *typeface->glyphsUsed, myDraw, procs);
 
@@ -2336,6 +2338,7 @@
     HRV(CreateTypefaceUse(paint, &typeface));
 
     SkDraw myDraw(d);
+    myDraw.fMatrix = &SkMatrix::I();
     SkXPSDrawProcs procs;
     text_draw_init(paint, text, byteLen, *typeface->glyphsUsed, myDraw, procs);
 
@@ -2411,6 +2414,9 @@
                                                     int width, int height,
                                                     bool isOpaque,
                                                     Usage usage) {
+
+//Conditional for bug compatibility with PDF device.
+#if 0
     if (SkBaseDevice::kGeneral_Usage == usage) {
         return NULL;
         SK_CRASH();
@@ -2420,7 +2426,7 @@
         //dev->BeginCanvas(s, s, SkMatrix::I());
         //return dev;
     }
-
+#endif
     return new SkXPSDevice(this->fXpsFactory.get());
 }
 
diff --git a/src/utils/win/SkIStream.cpp b/src/utils/win/SkIStream.cpp
index 182d9a8..0386ea7 100644
--- a/src/utils/win/SkIStream.cpp
+++ b/src/utils/win/SkIStream.cpp
@@ -122,6 +122,9 @@
                                     , bool unrefOnRelease
                                     , IStream ** ppStream)
 {
+    if (NULL == stream) {
+        return E_INVALIDARG;
+    }
     *ppStream = new SkIStream(stream, unrefOnRelease);
     return S_OK;
 }