diff options
| -rw-r--r-- | pugl/detail/mac.m | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/pugl/detail/mac.m b/pugl/detail/mac.m index 3bf7cdf..e46d989 100644 --- a/pugl/detail/mac.m +++ b/pugl/detail/mac.m @@ -783,14 +783,16 @@ handleCrossing(PuglWrapperView* view, NSEvent* event, const PuglEventType type)  @end  PuglWorldInternals* -puglInitWorldInternals(PuglWorldType PUGL_UNUSED(type), -                       PuglWorldFlags PUGL_UNUSED(flags)) +puglInitWorldInternals(PuglWorldType type, PuglWorldFlags PUGL_UNUSED(flags))  {  	PuglWorldInternals* impl = (PuglWorldInternals*)calloc(  		1, sizeof(PuglWorldInternals)); -	impl->app             = [NSApplication sharedApplication]; -	impl->autoreleasePool = [NSAutoreleasePool new]; +	impl->app = [NSApplication sharedApplication]; + +	if (type == PUGL_PROGRAM) { +		impl->autoreleasePool = [NSAutoreleasePool new]; +	}  	return impl;  } @@ -798,7 +800,10 @@ puglInitWorldInternals(PuglWorldType PUGL_UNUSED(type),  void  puglFreeWorldInternals(PuglWorld* world)  { -	[world->impl->autoreleasePool drain]; +	if (world->impl->autoreleasePool) { +		[world->impl->autoreleasePool drain]; +	} +  	free(world->impl);  } | 
