Merge "We can use fclose directly in std::unique_ptr."
This commit is contained in:
+5
-5
@@ -186,8 +186,7 @@ static int produce_block_map(const char* path, const char* map_file, const char*
|
|||||||
ALOGE("failed to open %s\n", map_file);
|
ALOGE("failed to open %s\n", map_file);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
FILE* mapf = fdopen(mapfd, "w");
|
std::unique_ptr<FILE, int(*)(FILE*)> mapf(fdopen(mapfd, "w"), fclose);
|
||||||
unique_file mapf_holder(mapf);
|
|
||||||
|
|
||||||
// Make sure we can write to the status_file.
|
// Make sure we can write to the status_file.
|
||||||
if (!android::base::WriteStringToFd("0\n", status_fd)) {
|
if (!android::base::WriteStringToFd("0\n", status_fd)) {
|
||||||
@@ -212,7 +211,8 @@ static int produce_block_map(const char* path, const char* map_file, const char*
|
|||||||
ranges[0] = -1;
|
ranges[0] = -1;
|
||||||
ranges[1] = -1;
|
ranges[1] = -1;
|
||||||
|
|
||||||
fprintf(mapf, "%s\n%lld %lu\n", blk_dev, (long long)sb.st_size, (unsigned long)sb.st_blksize);
|
fprintf(mapf.get(), "%s\n%lld %lu\n",
|
||||||
|
blk_dev, (long long)sb.st_size, (unsigned long)sb.st_blksize);
|
||||||
|
|
||||||
unsigned char* buffers[WINDOW_SIZE];
|
unsigned char* buffers[WINDOW_SIZE];
|
||||||
if (encrypted) {
|
if (encrypted) {
|
||||||
@@ -309,9 +309,9 @@ static int produce_block_map(const char* path, const char* map_file, const char*
|
|||||||
++head_block;
|
++head_block;
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(mapf, "%d\n", range_used);
|
fprintf(mapf.get(), "%d\n", range_used);
|
||||||
for (int i = 0; i < range_used; ++i) {
|
for (int i = 0; i < range_used; ++i) {
|
||||||
fprintf(mapf, "%d %d\n", ranges[i*2], ranges[i*2+1]);
|
fprintf(mapf.get(), "%d %d\n", ranges[i*2], ranges[i*2+1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fsync(mapfd) == -1) {
|
if (fsync(mapfd) == -1) {
|
||||||
|
|||||||
-11
@@ -59,15 +59,4 @@ class unique_fd {
|
|||||||
unique_fd& operator=(const unique_fd&) = delete;
|
unique_fd& operator=(const unique_fd&) = delete;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Custom deleter for unique_file to avoid fclose(NULL).
|
|
||||||
struct safe_fclose {
|
|
||||||
void operator()(FILE *fp) const {
|
|
||||||
if (fp) {
|
|
||||||
fclose(fp);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
using unique_file = std::unique_ptr<FILE, safe_fclose>;
|
|
||||||
|
|
||||||
#endif // UNIQUE_FD_H
|
#endif // UNIQUE_FD_H
|
||||||
|
|||||||
Reference in New Issue
Block a user