Effectively, after `self = [super init]`, the explicit "self" referred
to in `self->listRef` may not be the same as the implicit "self" in a
naked `listRef` expression.
People have been reporting crash on launch:
- issue: https://wincent.com/issues/2173
- see also comments here: http://www.macupdate.com/app/mac/10042/synergy
I am not sure if this will fix that issue, but it might, so it seems
worth giving it a try. If it does fix it, I should audit all init
methods in the code base and make sure they do the right thing.
Wincent Colaiuta [Tue, 1 Jan 2013 10:30:35 +0000 (02:30 -0800)]
Silence another Clang warning about incompatible types
This looks like it was a bug; there don't appear to be any reasonable
circumstances under which we'd want to return an NSMutableArray here
(there is no inheritance relationship or common interface).
Wincent Colaiuta [Tue, 1 Jan 2013 09:40:00 +0000 (01:40 -0800)]
Update WO_EXPORT_CLASS macro for 64-bit Mountain Lion
The old `.no_dead_strip` doesn't work when targeting x86_64 on Mountain
Lion, but the good news is that a simpler trick that doesn't require
inline assembly now does work.
Wincent Colaiuta [Mon, 18 Jan 2010 18:54:22 +0000 (19:54 +0100)]
Add more benchmarks for NSArray (WORubyBlocks)
To clearly demonstrate that the overhead of block dispatch is not
significant, add benchmarks involving repeated calls to the "map:"
method. Sample results:
Wincent Colaiuta [Sun, 17 Jan 2010 15:20:52 +0000 (16:20 +0100)]
Add benchmarks tool
Add tool for running some simple benchmarks. The first benchmark added
is a comparison of the speed of using the new -[NSArray map:] method
with a couple of variants of explicit manual enumeration.
The results should be taken with a grain of salt as multiple runs can
produce a both relative (changes of order) and absolute variation, but
at least at first glance it would appear that for non
performance-critical applications the election of method really isn't
that important.
Wincent Colaiuta [Thu, 14 Jan 2010 22:27:40 +0000 (23:27 +0100)]
Fix bug in error-path of pathForFolder:domain:create:
This bug was discovered while running the unit tests on a new system
with a clean Snow Leopard install. Previously the error-path containing
the bug had never been exercised.
Flesh out the unit tests to increase the likelihood of such a bug being
caught in the future if it ever returns (it is not possible to
guarantee 100% that the error-path can be triggered, because we don't
know what directories will exist on the system where the tests are
running).
Wincent Colaiuta [Thu, 14 Jan 2010 17:31:26 +0000 (18:31 +0100)]
Deprecate the createDirectoryAtPath:attributes:createParents: method
This method is made redundant by the createDirectoryAtPath:
withIntermediateDirectories:attributes:error: method which as added to
NSFileManager in Leopard, so turn it into a simple wrapper for that
method and mark it as deprecated.
This fixes deprecation warnings building against the 10.6 SDK (not
tested against the 10.5 SDK) about the use of createDirectoryAtPath:
attributes: method which is currently deprecated.
93e282e Switch to Snow Leopard SDK 04230fd README: update for Snow Leopard 1bf82fa Drop PowerPC support d49b922 README: add note on tags aa40fda README: remove unnecessary references to enclosing directory 6044395 README: add notes on repository URLs and layout 2ff2a43 README: remove "included tools" list 64c03c6 README: indent paths to make them stand out 18ae5c3 Update README for buildtools as a Git submodule 40f3da0 Fix GPL references in the README 9b7d87b Rewrap README to 80 columns 366d169 Remove legacy $Id$ tag
Wincent Colaiuta [Mon, 24 Aug 2009 16:54:06 +0000 (18:54 +0200)]
WOMemoryBarrier.h: drop PowerPC macros on Snow Leopard branch
This branch is for projects which run only on Snow Leopard, and as Snow
Leopard won't even run on PowerPC processors, the ppc macros are just
cruft which clutter up the header so drop them.
Wincent Colaiuta [Tue, 18 Aug 2009 18:18:35 +0000 (20:18 +0200)]
Update wmalloc reference to emalloc
wmalloc was renamed to emalloc back in 32cff7d, so update the stale
reference in WOSysctl; with this change, the WOPublic test suite now
builds and passes again.
The build chain was broken by the changes in buildtools, so these header
errors weren't picked up at commit time. Now the buildchain is restored
again these errors were detected and are fixed by this commit.
Initialization is one of the "edge" boundaries of an API where we want
to be strict about what we will accept in order to detect errors sooner.
I just ran into a crash caused by a build bug (missing file) which in
turn caused a nil value to be passed into the WOLoginItem initialization
codepath; this parameter check would have helped me discover the cause
of the problem a little sooner.
Wincent Colaiuta [Mon, 22 Jun 2009 17:07:26 +0000 (19:07 +0200)]
Clean up WOLoginItem and WOLoginItem for consistency with WOPublic
Update headers (update copyright ranges, remove unnecessary lines, add
license notice) and do some minor re-wrapping for better display on
narrow terminals.
Wincent Colaiuta [Mon, 25 May 2009 09:47:06 +0000 (11:47 +0200)]
Add xcalloc() wrapper
This is a wrapper for the calloc() function in the standard library
which, in the event of a failure, prints an error message to the
standard error ("error: failed to calloc X bytes") and calls exit().
Wincent Colaiuta [Tue, 19 May 2009 09:07:45 +0000 (11:07 +0200)]
Use Doxygen 1.5.9 to update Doxyfile
This fixes a bunch of warnings when using the old file with a newer
version of Doxygen:
Warning: Tag `USE_WINDOWS_ENCODING' at line 34 of file Doxyfile has become obsolete.
To avoid this warning please update your configuration file using "doxygen -u"
Warning: Tag `DETAILS_AT_TOP' at line 56 of file Doxyfile has become obsolete.
To avoid this warning please update your configuration file using "doxygen -u"
Warning: Tag `MAX_DOT_GRAPH_WIDTH' at line 244 of file Doxyfile has become obsolete.
To avoid this warning please update your configuration file using "doxygen -u"
Warning: Tag `MAX_DOT_GRAPH_HEIGHT' at line 245 of file Doxyfile has become obsolete.
To avoid this warning please update your configuration file using "doxygen -u"