Merge "Add support for decoding UTF16 to UTF8"
am: ac4728f8ba
* commit 'ac4728f8ba54e5f25466efeaf65a1dbda179ca97':
Add support for decoding UTF16 to UTF8
diff --git a/cmds/installd/commands.cpp b/cmds/installd/commands.cpp
index 0acc419..1b99582 100644
--- a/cmds/installd/commands.cpp
+++ b/cmds/installd/commands.cpp
@@ -742,7 +742,7 @@
return strcmp(tmp_property_value, "true") == 0;
}
-static void run_dex2oat(int zip_fd, int oat_fd, int image_fd, const char* input_file_name,
+static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name,
const char* output_file_name, int swap_fd, const char *instruction_set,
bool vm_safe_mode, bool debuggable, bool post_bootcomplete, bool use_jit)
{
@@ -822,8 +822,6 @@
char dex2oat_compiler_filter_arg[strlen("--compiler-filter=") + PROPERTY_VALUE_MAX];
bool have_dex2oat_swap_fd = false;
char dex2oat_swap_fd[strlen("--swap-fd=") + MAX_INT_LEN];
- bool have_dex2oat_image_fd = false;
- char dex2oat_image_fd[strlen("--app-image-fd=") + MAX_INT_LEN];
sprintf(zip_fd_arg, "--zip-fd=%d", zip_fd);
sprintf(zip_location_arg, "--zip-location=%s", input_file_name);
@@ -836,10 +834,6 @@
have_dex2oat_swap_fd = true;
sprintf(dex2oat_swap_fd, "--swap-fd=%d", swap_fd);
}
- if (image_fd >= 0) {
- have_dex2oat_image_fd = true;
- sprintf(dex2oat_image_fd, "--app-image-fd=%d", image_fd);
- }
// use the JIT if either it's specified as a dexopt flag or if the property is set
use_jit = use_jit || check_boolean_property("debug.usejit");
@@ -881,7 +875,6 @@
+ (have_dex2oat_compiler_filter_flag ? 1 : 0)
+ (have_dex2oat_threads_flag ? 1 : 0)
+ (have_dex2oat_swap_fd ? 1 : 0)
- + (have_dex2oat_image_fd ? 1 : 0)
+ (have_dex2oat_relocation_skip_flag ? 2 : 0)
+ (generate_debug_info ? 1 : 0)
+ (debuggable ? 1 : 0)
@@ -916,9 +909,6 @@
if (have_dex2oat_swap_fd) {
argv[i++] = dex2oat_swap_fd;
}
- if (have_dex2oat_image_fd) {
- argv[i++] = dex2oat_image_fd;
- }
if (generate_debug_info) {
argv[i++] = "--generate-debug-info";
}
@@ -1067,10 +1057,9 @@
struct stat input_stat;
char out_path[PKG_PATH_MAX];
char swap_file_name[PKG_PATH_MAX];
- char image_path[PKG_PATH_MAX];
const char *input_file;
char in_odex_path[PKG_PATH_MAX];
- int res, input_fd=-1, out_fd=-1, image_fd=-1, swap_fd=-1;
+ int res, input_fd=-1, out_fd=-1, swap_fd=-1;
bool is_public = (dexopt_flags & DEXOPT_PUBLIC) != 0;
bool vm_safe_mode = (dexopt_flags & DEXOPT_SAFEMODE) != 0;
bool debuggable = (dexopt_flags & DEXOPT_DEBUGGABLE) != 0;
@@ -1173,33 +1162,6 @@
}
}
- // Open the image file if there is room in the file path.
- if (strlen(out_path) + strlen(".art") < PKG_PATH_MAX) {
- strcpy(image_path, out_path);
- // Trim the extension.
- int pos = strlen(image_path);
- for (; pos >= 0 && image_path[pos] != '.'; --pos) {}
- if (pos != 0) {
- image_path[pos] = '\0'; // Trim extension
- }
- strcat(image_path, ".art");
- unlink(image_path);
- image_fd = open(image_path, O_RDWR | O_CREAT | O_EXCL, 0600);
- if (image_fd < 0) {
- // Could not create swap file. Optimistically go on and hope that we can compile
- // without it.
- ALOGE("installd could not create '%s' for image file during dexopt\n", image_path);
- } else if (fchmod(image_fd,
- S_IRUSR|S_IWUSR|S_IRGRP |
- (is_public ? S_IROTH : 0)) < 0) {
- ALOGE("installd cannot chmod '%s' during dexopt\n", image_path);
- image_fd = -1;
- } else if (fchown(image_fd, AID_SYSTEM, uid) < 0) {
- ALOGE("installd cannot chown '%s' during dexopt\n", image_path);
- image_fd = -1;
- }
- }
-
ALOGV("DexInv: --- BEGIN '%s' ---\n", input_file);
pid_t pid;
@@ -1240,7 +1202,7 @@
} else {
input_file_name++;
}
- run_dex2oat(input_fd, out_fd, image_fd, input_file_name, out_path, swap_fd,
+ run_dex2oat(input_fd, out_fd, input_file_name, out_path, swap_fd,
instruction_set, vm_safe_mode, debuggable, boot_complete, use_jit);
} else {
ALOGE("Invalid dexopt needed: %d\n", dexopt_needed);
@@ -1263,12 +1225,9 @@
close(out_fd);
close(input_fd);
- if (swap_fd >= 0) {
+ if (swap_fd != -1) {
close(swap_fd);
}
- if (image_fd >= 0) {
- close(image_fd);
- }
return 0;
fail:
@@ -1279,12 +1238,6 @@
if (input_fd >= 0) {
close(input_fd);
}
- if (swap_fd >= 0) {
- close(swap_fd);
- }
- if (image_fd >= 0) {
- close(image_fd);
- }
return -1;
}