null+****@clear*****
null+****@clear*****
2012年 2月 14日 (火) 13:58:37 JST
Kouhei Sutou 2012-02-14 13:58:37 +0900 (Tue, 14 Feb 2012)
New Revision: ddd7e9ba7cae8146f97b05f7b9e1d77f9ecc3ff7
Log:
Revert "[dat] migrated to grn_normalized_text from grn_str."
This reverts commit 2aa6c3365fe995e778bc9da4fe1ce74dd1febaab.
Modified files:
lib/dat.cpp
Modified: lib/dat.cpp (+10 -16)
===================================================================
--- lib/dat.cpp 2012-02-14 13:58:25 +0900 (8197a5a)
+++ lib/dat.cpp 2012-02-14 13:58:37 +0900 (12ff71b)
@@ -695,19 +695,16 @@ int grn_dat_scan(grn_ctx *ctx, grn_dat *dat, const char *str,
int num_scan_hits = 0;
try {
- if (dat->normalizer) {
- grn_obj * normalized_text;
- normalized_text = grn_normalized_text_open(ctx, dat->normalizer,
- str, str_size,
- dat->encoding,
- GRN_NORMALIZE_WITH_CHECKS);
- if (!normalized_text) {
- ERR(GRN_NO_MEMORY_AVAILABLE,
- "[dat][scan] failed to allocate memory for normalization");
+ if (dat->obj.header.flags & GRN_OBJ_KEY_NORMALIZE) {
+ grn_str * const normalized_str = grn_str_open(
+ ctx, str, str_size, GRN_STR_NORMALIZE | GRN_NORMALIZE_WITH_CHECKS);
+ if (!normalized_str) {
+ fprintf(stderr, "error: grn_str_open() failed!\n");
return -1;
}
- grn_normalized_text_get_value(ctx, normalized_text, &str, NULL, &str_size);
- const short *checks = grn_normalized_text_get_checks(ctx, normalized_text);
+ str = normalized_str->norm;
+ str_size = normalized_str->norm_blen;
+ const short *checks = normalized_str->checks;
unsigned int offset = 0;
while (str_size) {
if (*checks) {
@@ -744,12 +741,9 @@ int grn_dat_scan(grn_ctx *ctx, grn_dat *dat, const char *str,
++checks;
}
if (str_rest) {
- const char *original;
- grn_normalized_text_get_original_value(ctx, normalized_text,
- &original, NULL);
- *str_rest = original + offset;
+ *str_rest = normalized_str->orig + offset;
}
- grn_obj_unlink(ctx, normalized_text);
+ grn_str_close(ctx, normalized_str);
} else {
const char * const begin = str;
while (str_size) {