File tree Expand file tree Collapse file tree 7 files changed +24
-21
lines changed
Expand file tree Collapse file tree 7 files changed +24
-21
lines changed Original file line number Diff line number Diff line change @@ -98,16 +98,17 @@ FLSliceResult FLSliceResult_New(size_t);
9898/** Allocates an FLSliceResult, copying the given slice. */
9999FLSliceResult FLSlice_Copy (FLSlice );
100100
101+ void _FLBuf_Retain (const void * ); // internal; do not call
102+ void _FLBuf_Release (const void * ); // internal; do not call
103+
101104/** Increments the ref-count of a FLSliceResult. */
102105static inline FLSliceResult FLSliceResult_Retain (FLSliceResult s ) {
103- void _FLBuf_Retain (const void * );
104106 _FLBuf_Retain (s .buf );
105107 return s ;
106108}
107109
108110/** Decrements the ref-count of a FLSliceResult, freeing its memory if it reached zero. */
109111static inline void FLSliceResult_Release (FLSliceResult s ) {
110- void _FLBuf_Release (const void * );
111112 _FLBuf_Release (s .buf );
112113}
113114
Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ set(FLEECE_BASE_SRC Fleece/Support/Backtrace.cc
4141 Fleece/Support/RefCounted.cc
4242 Fleece/Support/Writer.cc
4343 Fleece/Support/betterassert.cc
44- Fleece/Support /FLSlice.cc
44+ Fleece/API_Impl /FLSlice.cc
4545 Fleece/Support/slice.cc
4646 Fleece/Support/varint.cc
4747 vendor/libb64/cdecode.c
Original file line number Diff line number Diff line change 345345 274D8255209D1764008BB39F /* RefCounted.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = RefCounted.hh; sourceTree = "<group>"; };
346346 2750735D1F4B5F0F003D2CCE /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
347347 275B3595234BE12800FE9CF0 /* FLSlice.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FLSlice.cc; sourceTree = "<group>"; };
348+ 275B35A2234E4D3C00FE9CF0 /* cmake */ = {isa = PBXFileReference; lastKnownFileType = folder; path = cmake; sourceTree = "<group>"; };
348349 275C67DB1BFBA0F4008AA9E7 /* Fleece.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = Fleece.md; sourceTree = "<group>"; };
349350 275C67DC1BFBA128008AA9E7 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
350351 275CED501D3EF7BE001DE46C /* FleeceException.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FleeceException.cc; sourceTree = "<group>"; };
530531 27298E3E1C00F8A9000CFBA8 /* vendor */,
531532 270FA25D1BF53CAD005DCB13 /* Products */,
532533 2750735D1F4B5F0F003D2CCE /* CMakeLists.txt */,
534+ 275B35A2234E4D3C00FE9CF0 /* cmake */,
533535 27DE2EE22125FAC600123597 /* Frameworks */,
534536 );
535537 sourceTree = "<group>";
Original file line number Diff line number Diff line change 1616// limitations under the License.
1717//
1818
19- #include " FLSlice.h"
19+ #include " fleece/FLSlice.h"
20+ #include < atomic>
21+ #include < cstddef>
22+ #include " betterassert.hh"
2023
2124
2225bool FLSlice_Equal (FLSlice a, FLSlice b) {
@@ -83,10 +86,6 @@ namespace fleece {
8386 free (self);
8487 }
8588
86- static sharedBuffer* fromBuf (const void *buf) {
87- return offsetby ((sharedBuffer*)buf, -((long long )offsetof (sharedBuffer, _buf)));
88- }
89-
9089 inline void retain () noexcept {
9190 assert (isHeapAligned (this ));
9291 ++_refCount;
@@ -99,6 +98,10 @@ namespace fleece {
9998 }
10099 };
101100
101+ static sharedBuffer* bufferFromBuf (const void *buf) {
102+ return (sharedBuffer*)((uint8_t *)buf - offsetof (sharedBuffer, _buf));
103+ }
104+
102105}
103106
104107using namespace fleece ;
@@ -131,19 +134,15 @@ FLSliceResult FLSlice_Copy(FLSlice s) {
131134}
132135
133136
134- void _FLBuf_Retain (const void *);
135- void _FLBuf_Release (const void *);
136-
137-
138137void _FLBuf_Retain (const void *buf) {
139138 if (buf)
140- sharedBuffer::fromBuf (buf)->retain ();
139+ bufferFromBuf (buf)->retain ();
141140}
142141
143142
144143void _FLBuf_Release (const void *buf) {
145144 if (buf)
146- sharedBuffer::fromBuf (buf)->release ();
145+ bufferFromBuf (buf)->release ();
147146}
148147
149148
Original file line number Diff line number Diff line change @@ -8,8 +8,8 @@ _kFLEmptyDict
88
99_FLSlice_Equal
1010_FLSlice_Compare
11- _FLSliceResult_Retain
12- _FLSliceResult_Release
11+ __FLBuf_Retain
12+ __FLBuf_Release
1313
1414_FLDoc_FromResultData
1515_FLDoc_FromJSON
Original file line number Diff line number Diff line change 3030#endif // assert_always
3131
3232
33- #ifndef NDEBUG
34-
35- #undef assert
33+ #undef assert
34+ #ifdef NDEBUG
35+ #define assert (e ) ((void )0 )
36+ #else
3637 #define assert (e ) assert_always(e)
37-
3838#endif // NDEBUG
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ function(set_source_files_base)
88 set (
99 ${BASE_SSS_RESULT}
1010 Fleece/API_Impl/Fleece.cc
11+ Fleece/API_Impl/FLSlice.cc
1112 Fleece/Core/Array.cc
1213 Fleece/Core/DeepIterator.cc
1314 Fleece/Core/Dict.cc
@@ -77,4 +78,4 @@ function(set_test_source_files_base)
7778 Experimental/KeyTree.cc
7879 PARENT_SCOPE
7980 )
80- endfunction ()
81+ endfunction ()
You can’t perform that action at this time.
0 commit comments