gfx/skia/trunk/src/utils/ios/SkStream_NSData.mm

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:0a54eb00d543
1 /*
2 * Copyright 2010 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #include "SkStream_NSData.h"
9
10 NSData* NSData_dataWithStream(SkStream* stream) {
11 size_t length = stream->getLength();
12 void* src = malloc(length);
13 size_t bytes = stream->read(src, length);
14 SkASSERT(bytes == length);
15 return [NSData dataWithBytesNoCopy:src length:length freeWhenDone:YES];
16 }
17
18 NSData* NSData_dataFromResource(const char cname[], const char csuffix[]) {
19 NSBundle* bundle = [NSBundle mainBundle];
20 NSString* name = [NSString stringWithUTF8String:cname];
21 NSString* suffix = [NSString stringWithUTF8String:csuffix];
22 NSString* path = [bundle pathForResource:name ofType:suffix];
23 return [NSData dataWithContentsOfMappedFile:path];
24 }
25
26 ///////////////////////////////////////////////////////////////////////////////
27
28 SkStream_NSData::SkStream_NSData(NSData* data) {
29 fNSData = data;
30 [fNSData retain];
31
32 this->setMemory([fNSData bytes], [fNSData length], false);
33 }
34
35 SkStream_NSData::~SkStream_NSData() {
36 [fNSData release];
37 }
38
39 SkStream_NSData* SkStream_NSData::CreateFromResource(const char name[],
40 const char suffix[]) {
41 NSData* data = NSData_dataFromResource(name, suffix);
42 return SkNEW_ARGS(SkStream_NSData, (data));
43 }
44

mercurial