Index: platform_tools/android/launcher/skia_launcher.cpp |
diff --git a/platform_tools/android/launcher/skia_launcher.cpp b/platform_tools/android/launcher/skia_launcher.cpp |
index 972382dc16f325188ce3717e4e44e794056ffb1e..231289d4e921d57c2ae18a44df0d491d5f4f39d4 100644 |
--- a/platform_tools/android/launcher/skia_launcher.cpp |
+++ b/platform_tools/android/launcher/skia_launcher.cpp |
@@ -28,6 +28,29 @@ int launch_app(int (*app_main)(int, const char**), int argc, |
return (*app_main)(argc, argv); |
} |
+void* load_library(const char** argv, const char* libraryName) |
+{ |
+ // attempt to lookup the location of the shared libraries |
+ char libraryLocation[100]; |
+ sprintf(libraryLocation, "%s/lib/lib%s.so", argv[0], libraryName); |
+ if (!file_exists(libraryLocation)) { |
+ printf("ERROR: Unable to find the appropriate library in the Skia App.\n"); |
+ printf("ERROR: Did you provide the correct program_name?\n"); |
+ usage(argv[0]); |
+ return NULL; |
+ } |
+ |
+ // load the appropriate library |
+ void* appLibrary = dlopen(libraryLocation, RTLD_LOCAL | RTLD_LAZY); |
+ if (!appLibrary) { |
+ printf("ERROR: Unable to open the shared library.\n"); |
+ printf("ERROR: %s", dlerror()); |
+ return NULL; |
+ } |
+ |
+ return appLibrary; |
+} |
+ |
int main(int argc, const char** argv) { |
// check that the program name was specified |
@@ -44,21 +67,16 @@ int main(int argc, const char** argv) { |
return -1; |
} |
- // attempt to lookup the location of the shared libraries |
- char libraryLocation[100]; |
- sprintf(libraryLocation, "%s/lib/lib%s.so", appLocation, argv[1]); |
- if (!file_exists(libraryLocation)) { |
- printf("ERROR: Unable to find the appropriate library in the Skia App.\n"); |
- printf("ERROR: Did you provide the correct program_name?\n"); |
- usage(argv[0]); |
+ // load the local skia shared library |
+ void* skiaLibrary = load_library(argv, "libskia_android.so"); |
+ if (NULL == skiaLibrary) |
+ { |
return -1; |
} |
// load the appropriate library |
- void* appLibrary = dlopen(libraryLocation, RTLD_LOCAL | RTLD_LAZY); |
- if (!appLibrary) { |
- printf("ERROR: Unable to open the shared library.\n"); |
- printf("ERROR: %s", dlerror()); |
+ void* appLibrary = load_library(argv, argv[1]); |
+ if (NULL == appLibrary) { |
return -1; |
} |