Skip to content

Commit

Permalink
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/…
Browse files Browse the repository at this point in the history
…git/krisman/unicode.git
  • Loading branch information
Mark Brown committed May 4, 2023
2 parents e29eafc + b500d6d commit 264c234
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 14 deletions.
1 change: 1 addition & 0 deletions Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ obj-$(CONFIG_BLOCK) += block/
obj-$(CONFIG_IO_URING) += io_uring/
obj-$(CONFIG_RUST) += rust/
obj-y += $(ARCH_LIB)
obj-$(CONFIG_RUST) += rust/
obj-y += drivers/
obj-y += sound/
obj-$(CONFIG_SAMPLES) += samples/
Expand Down
38 changes: 24 additions & 14 deletions fs/unicode/mkutf8data.c
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,16 @@ static void tree_walk(struct tree *tree)
nodes, leaves, singletons);
}

static void *xmalloc(size_t size)
{
void *p = malloc(size);

if (p)
return p;
fprintf(stderr, "Out of memory.\n");
exit(1);
}

/*
* Allocate an initialize a new internal node.
*/
Expand All @@ -494,7 +504,7 @@ static struct node *alloc_node(struct node *parent)
struct node *node;
int bitnum;

node = malloc(sizeof(*node));
node = xmalloc(sizeof(*node));
node->left = node->right = NULL;
node->parent = parent;
node->leftnode = NODE;
Expand Down Expand Up @@ -2159,7 +2169,7 @@ static void nfdi_init(void)
}
mapping[i++] = 0;

um = malloc(i * sizeof(unsigned int));
um = xmalloc(i * sizeof(unsigned int));
memcpy(um, mapping, i * sizeof(unsigned int));
unicode_data[unichar].utf32nfdi = um;

Expand Down Expand Up @@ -2215,7 +2225,7 @@ static void nfdicf_init(void)
}
mapping[i++] = 0;

um = malloc(i * sizeof(unsigned int));
um = xmalloc(i * sizeof(unsigned int));
memcpy(um, mapping, i * sizeof(unsigned int));
unicode_data[unichar].utf32nfdicf = um;

Expand Down Expand Up @@ -2256,11 +2266,11 @@ static void ignore_init(void)
line_fail(prop_name, line);
for (unichar = first; unichar <= last; unichar++) {
free(unicode_data[unichar].utf32nfdi);
um = malloc(sizeof(unsigned int));
um = xmalloc(sizeof(unsigned int));
*um = 0;
unicode_data[unichar].utf32nfdi = um;
free(unicode_data[unichar].utf32nfdicf);
um = malloc(sizeof(unsigned int));
um = xmalloc(sizeof(unsigned int));
*um = 0;
unicode_data[unichar].utf32nfdicf = um;
count++;
Expand All @@ -2277,11 +2287,11 @@ static void ignore_init(void)
if (!utf32valid(unichar))
line_fail(prop_name, line);
free(unicode_data[unichar].utf32nfdi);
um = malloc(sizeof(unsigned int));
um = xmalloc(sizeof(unsigned int));
*um = 0;
unicode_data[unichar].utf32nfdi = um;
free(unicode_data[unichar].utf32nfdicf);
um = malloc(sizeof(unsigned int));
um = xmalloc(sizeof(unsigned int));
*um = 0;
unicode_data[unichar].utf32nfdicf = um;
if (verbose > 1)
Expand Down Expand Up @@ -2359,7 +2369,7 @@ static void corrections_init(void)
}
mapping[i++] = 0;

um = malloc(i * sizeof(unsigned int));
um = xmalloc(i * sizeof(unsigned int));
memcpy(um, mapping, i * sizeof(unsigned int));
corrections[count].utf32nfdi = um;

Expand Down Expand Up @@ -2459,12 +2469,12 @@ static void hangul_decompose(void)
mapping[i++] = 0;

assert(!unicode_data[unichar].utf32nfdi);
um = malloc(i * sizeof(unsigned int));
um = xmalloc(i * sizeof(unsigned int));
memcpy(um, mapping, i * sizeof(unsigned int));
unicode_data[unichar].utf32nfdi = um;

assert(!unicode_data[unichar].utf32nfdicf);
um = malloc(i * sizeof(unsigned int));
um = xmalloc(i * sizeof(unsigned int));
memcpy(um, mapping, i * sizeof(unsigned int));
unicode_data[unichar].utf32nfdicf = um;

Expand All @@ -2473,7 +2483,7 @@ static void hangul_decompose(void)
* decompositions must not be stored in the generated
* trie.
*/
unicode_data[unichar].utf8nfdi = malloc(2);
unicode_data[unichar].utf8nfdi = xmalloc(2);
unicode_data[unichar].utf8nfdi[0] = HANGUL;
unicode_data[unichar].utf8nfdi[1] = '\0';

Expand Down Expand Up @@ -2523,13 +2533,13 @@ static void nfdi_decompose(void)
if (ret)
break;
free(unicode_data[unichar].utf32nfdi);
um = malloc(i * sizeof(unsigned int));
um = xmalloc(i * sizeof(unsigned int));
memcpy(um, mapping, i * sizeof(unsigned int));
unicode_data[unichar].utf32nfdi = um;
}
/* Add this decomposition to nfdicf if there is no entry. */
if (!unicode_data[unichar].utf32nfdicf) {
um = malloc(i * sizeof(unsigned int));
um = xmalloc(i * sizeof(unsigned int));
memcpy(um, mapping, i * sizeof(unsigned int));
unicode_data[unichar].utf32nfdicf = um;
}
Expand Down Expand Up @@ -2577,7 +2587,7 @@ static void nfdicf_decompose(void)
if (ret)
break;
free(unicode_data[unichar].utf32nfdicf);
um = malloc(i * sizeof(unsigned int));
um = xmalloc(i * sizeof(unsigned int));
memcpy(um, mapping, i * sizeof(unsigned int));
unicode_data[unichar].utf32nfdicf = um;
}
Expand Down

0 comments on commit 264c234

Please sign in to comment.