On Windows, there is an occasional sporadic failure of autorelease to work correctly. In particular, this seems to happen when autorelease is invoked on an object while a call stack is in the middle of draining an autorelease pool. So, for example, when dealloc is called on an NSTextContainer, it then calls setTextContainer: on the associated NSTextView, which in turn calls textContainers on the layoutManager, which returns an autoreleased array of NSTextContainers. This array is sometimes released and sometimes it isn't. Wrapping the setTextContainer: in an autorelease pool, which will then drain at the end of the method, rather than relying on the main autorelease pool in the run loop (which is in the middle of being drained), appears to fix this problem. This adds a small amount of overhead, but also makes the memory usage a little more efficient, since anything autoretained during the course of this method is released more quickly. |
||
---|---|---|
.github | ||
ColorPickers | ||
config | ||
Documentation | ||
Headers | ||
Images | ||
KeyBindings | ||
Model | ||
Panels | ||
PrinterTypes | ||
Printing | ||
Resources | ||
Sounds | ||
Source | ||
Tests | ||
TextConverters | ||
Themes | ||
Tools | ||
.cvsignore | ||
.gitignore | ||
.travis.yml | ||
ANNOUNCE | ||
BUGS | ||
ChangeLog | ||
ChangeLog.1 | ||
ChangeLog.2 | ||
ChangeLog.3 | ||
ChangeLog.4 | ||
ChangeLog.5 | ||
CODEOWNERS | ||
config.make.in | ||
configure | ||
configure.ac | ||
COPYING | ||
COPYING.LIB | ||
GNUmakefile | ||
GNUmakefile.postamble | ||
gnustep-gui.spec.in | ||
gui.make.in | ||
INSTALL | ||
install.sh | ||
MISSING | ||
NEWS | ||
README | ||
README.md | ||
travis-deps.sh | ||
Version |
GNUstep GUI Library
The GNUstep gui library is a library of graphical user interface classes written completely in the Objective-C language; the classes are based upon Apple's Cocoa framwork (which came from the OpenStep specification). These classes include graphical objects such as buttons, text fields, popup lists, browser lists, and windows; there are also many associated classes for handling events, colors, fonts, pasteboards and images.
Initial reading
The file ANNOUNCE contains a very brief overview of the library. It also tells you where to get the most recent version.
The file NEWS has the library's feature history.
The files INSTALL or GNUstep-HOWTO (from the web site) gives instructions for installing the library.
License
The GNUstep libraries and library resources are covered under the GNU Lesser Public License. This means you can use these libraries in any program (even non-free programs). If you distribute the libraries along with your program, you must make the improvements you have made to the libraries freely available. You should read the COPYING.LIB file for more information. All files in the 'Source', 'Headers', directories and subdirectories under this are covered under the LGPL.
GNUstep tools, test programs, and other files are covered under the GNU Public License. This means if you make changes to these programs, you cannot charge a fee, other than distribution fees, for others to use the program. All files in this package EXCEPT files in the 'Tools' directories and subdirectories under this are covered under the LGPL.
How can you help?
Give us feedback! Tell us what you like; tell us what you think could be better.
Please log bug reports on the GitHub issues page.
Happy hacking!
Copyright (C) 2005 Free Software Foundation
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.