diff options
author | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2012-02-06 18:30:17 +0000 |
---|---|---|
committer | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2012-02-06 18:30:17 +0000 |
commit | 754cbb4066c2682c8dec120f3d0550f84e326d3a (patch) | |
tree | bf15b6e6ee712a0e39b94e526da9db8308a0bb54 /Foundation/GTMNSData+zlib.m | |
parent | 2211ca05c8ff675d4c2981074311b58d309aaae3 (diff) |
[Author: thomasvl]
Document that for 64bit, >32bit length is not supported.
Remove TODOs as they don't make sense to do.
R=dmaclach
DELTA=16 (6 added, 0 deleted, 10 changed)
Diffstat (limited to 'Foundation/GTMNSData+zlib.m')
-rw-r--r-- | Foundation/GTMNSData+zlib.m | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/Foundation/GTMNSData+zlib.m b/Foundation/GTMNSData+zlib.m index 8ba1ddc..9183334 100644 --- a/Foundation/GTMNSData+zlib.m +++ b/Foundation/GTMNSData+zlib.m @@ -6,9 +6,9 @@ // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy // of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -37,12 +37,13 @@ if (!bytes || !length) { return nil; } - - // TODO: support 64bit inputs - // avail_in is a uInt, so if length > UINT_MAX we actually need to loop - // feeding the data until we've gotten it all in. not supporting this - // at the moment. - _GTMDevAssert(length <= UINT_MAX, @"Currently don't support >32bit lengths"); + +#if defined(__LP64__) && __LP64__ + // Don't support > 32bit length for 64 bit, see note in header. + if (length > UINT_MAX) { + return nil; + } +#endif if (level == Z_DEFAULT_COMPRESSION) { // the default value is actually outside the range, so we have to let it @@ -117,7 +118,7 @@ return result; } // gtm_dataByCompressingBytes:length:compressionLevel:useGzip: - + @end @@ -193,12 +194,13 @@ if (!bytes || !length) { return nil; } - - // TODO: support 64bit inputs - // avail_in is a uInt, so if length > UINT_MAX we actually need to loop - // feeding the data until we've gotten it all in. not supporting this - // at the moment. - _GTMDevAssert(length <= UINT_MAX, @"Currently don't support >32bit lengths"); + +#if defined(__LP64__) && __LP64__ + // Don't support > 32bit length for 64 bit, see note in header. + if (length > UINT_MAX) { + return nil; + } +#endif z_stream strm; bzero(&strm, sizeof(z_stream)); |