mirror of
https://github.com/Ryujinx/SDL.git
synced 2024-12-23 19:25:34 +00:00
0e45984fa0
The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly uninitialized data structure if loading the library first failed. A later try to use EGL then skipped initialization and assumed it was previously successful because the data structure now already existed. This led to at least one crash in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was dereferenced to make a call to eglBindAPI().
59 lines
2.4 KiB
Diff
Executable file
59 lines
2.4 KiB
Diff
Executable file
# HG changeset patch
|
|
# User Ben Henning
|
|
# Date 1376509869 25200
|
|
# Wed Aug 14 12:51:09 2013 -0700
|
|
# Node ID e8558df4fbdb173a2b9ed0d354d6c3e76b376698
|
|
# Parent a5f8b4f709722222e02fa481873d76ad25255e09
|
|
Fixed a bug in Xcode project generation wherein pre/prelink/post-build commands
|
|
would not be properly executed if the premake script only had the commands
|
|
in configuration blocks, rather than in the project block. According to the
|
|
website, these commands can exist in both blocks and the Xcode script does
|
|
properly generate the commands, it just doesn't add a single line which allows
|
|
Xcode to execute the commands at the correct stage. This patch fixes those
|
|
issues.
|
|
|
|
diff --git a/src/actions/xcode/xcode_common.lua b/src/actions/xcode/xcode_common.lua
|
|
--- a/src/actions/xcode/xcode_common.lua
|
|
+++ b/src/actions/xcode/xcode_common.lua
|
|
@@ -432,20 +432,37 @@
|
|
for _, node in ipairs(tr.products.children) do
|
|
local name = tr.project.name
|
|
|
|
+ -- This function checks whether there are build commands of a specific
|
|
+ -- type to be executed; they will be generated correctly, but the project
|
|
+ -- commands will not contain any per-configuration commands, so the logic
|
|
+ -- has to be extended a bit to account for that.
|
|
+ local function hasBuildCommands(which)
|
|
+ -- standard check...this is what existed before
|
|
+ if #tr.project[which] > 0 then
|
|
+ return true
|
|
+ end
|
|
+ -- what if there are no project-level commands? check configs...
|
|
+ for _, cfg in ipairs(tr.configs) do
|
|
+ if #cfg[which] > 0 then
|
|
+ return true
|
|
+ end
|
|
+ end
|
|
+ end
|
|
+
|
|
_p(2,'%s /* %s */ = {', node.targetid, name)
|
|
_p(3,'isa = PBXNativeTarget;')
|
|
_p(3,'buildConfigurationList = %s /* Build configuration list for PBXNativeTarget "%s" */;', node.cfgsection, name)
|
|
_p(3,'buildPhases = (')
|
|
- if #tr.project.prebuildcommands > 0 then
|
|
+ if hasBuildCommands('prebuildcommands') then
|
|
_p(4,'9607AE1010C857E500CD1376 /* Prebuild */,')
|
|
end
|
|
_p(4,'%s /* Resources */,', node.resstageid)
|
|
_p(4,'%s /* Sources */,', node.sourcesid)
|
|
- if #tr.project.prelinkcommands > 0 then
|
|
+ if hasBuildCommands('prelinkcommands') then
|
|
_p(4,'9607AE3510C85E7E00CD1376 /* Prelink */,')
|
|
end
|
|
_p(4,'%s /* Frameworks */,', node.fxstageid)
|
|
- if #tr.project.postbuildcommands > 0 then
|
|
+ if hasBuildCommands('postbuildcommands') then
|
|
_p(4,'9607AE3710C85E8F00CD1376 /* Postbuild */,')
|
|
end
|
|
_p(3,');')
|