diff options
author | Jordan Rose <jordan_rose@apple.com> | 2012-06-16 00:09:20 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2012-06-16 00:09:20 +0000 |
commit | 1bf908df57cc43f3bc7296f4e51f5708bd323c6b (patch) | |
tree | 6168abf1a59d940bcbbc9c711f288e7b889afab7 /test/Analysis/system-header-simulator.h | |
parent | 32f498a675df990901e6659d610dc740f9423228 (diff) |
[analyzer] Buffers passed to CGBitmapContextCreate can escape.
Specifically, although the bitmap context does not take ownership of the
buffer (unlike CGBitmapContextCreateWithData), the data buffer can be extracted
out of the created CGContextRef. Thus the buffer is not leaked even if its
original pointer goes out of scope, as long as
- the context escapes, or
- it is retrieved via CGBitmapContextGetData and freed.
Actually implementing that logic is beyond the current scope of MallocChecker,
so for now CGBitmapContextCreate goes on our system function exception list.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158579 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Analysis/system-header-simulator.h')
-rw-r--r-- | test/Analysis/system-header-simulator.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/test/Analysis/system-header-simulator.h b/test/Analysis/system-header-simulator.h index a8cba9ce5b..d2fb2e8684 100644 --- a/test/Analysis/system-header-simulator.h +++ b/test/Analysis/system-header-simulator.h @@ -46,3 +46,10 @@ typedef struct { int dealocateMemWhenDoneByVal(void*, StWithCallback); int dealocateMemWhenDoneByRef(StWithCallback*, const void*); + +typedef struct CGContext *CGContextRef; +CGContextRef CGBitmapContextCreate(void *data/*, size_t width, size_t height, + size_t bitsPerComponent, size_t bytesPerRow, + CGColorSpaceRef space, + CGBitmapInfo bitmapInfo*/); +void *CGBitmapContextGetData(CGContextRef context); |