mirror of
https://github.com/gnustep/libs-back.git
synced 2025-04-22 23:42:16 +00:00
Protected +initialize from being called multiple times on GSContext because of
subclasses. As a result, this eliminates a gstate table memory leak, and prevents the table to be reset while still in use (causing various DPS errors such as invalid param, stack underflow and segfault). git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@35153 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
a8860a1493
commit
51645accac
2 changed files with 15 additions and 2 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2012-05-14 Quentin Mathe <quentin.mathe@gmail.com>
|
||||
|
||||
* Source/gsc/GSContext.m (+initialize): Protected +initialize from being
|
||||
called multiple times because of subclasses. As a result, this
|
||||
eliminates a gtable memory leak (e.g. +initialize sent to both GSContext
|
||||
and CairoContext at backend initialization time), and prevents the
|
||||
gstate stack to be reset while still in use (e.g. the program enumerates
|
||||
classes at runtime and sends messages to them... +initialize might be
|
||||
sent to GSStreamContext in such a case).
|
||||
|
||||
2012-05-12 Eric Wasylishen <ewasylishen@gmail.com>
|
||||
|
||||
* Source/x11/XIMInputServer.m: Remove the locale setting code.
|
||||
|
|
|
@ -135,8 +135,11 @@ static NSMapTable *gtable;
|
|||
|
||||
+ (void) initialize
|
||||
{
|
||||
gtable = NSCreateMapTable(NSIntMapKeyCallBacks,
|
||||
NSObjectMapValueCallBacks, 20);
|
||||
if (self == [GSContext class])
|
||||
{
|
||||
gtable = NSCreateMapTable(NSIntMapKeyCallBacks,
|
||||
NSObjectMapValueCallBacks, 20);
|
||||
}
|
||||
}
|
||||
|
||||
+ (void) insertObject: (id)obj forKey: (int)index
|
||||
|
|
Loading…
Reference in a new issue