Use uint32_t instead of int for the dynamic API

https://code.google.com/p/cld2/issues/detail?id=12



git-svn-id: https://cld2.googlecode.com/svn/trunk@160 b252ecd4-b096-bf77-eb8e-91563289f87e
This commit is contained in:
andrewhayden@google.com
2014-04-03 09:58:40 +00:00
parent d2ad115b8d
commit 3fced38754
5 changed files with 20 additions and 16 deletions

View File

@@ -13,6 +13,7 @@
// limitations under the License. // limitations under the License.
#include <assert.h> #include <assert.h>
#include <stdint.h>
#include <stdio.h> #include <stdio.h>
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
@@ -40,7 +41,7 @@ CLD2DynamicData::FileHeader* loadHeaderFromFile(const char* fileName) {
} }
CLD2DynamicData::FileHeader* loadHeaderFromRaw(const void* basePointer, CLD2DynamicData::FileHeader* loadHeaderFromRaw(const void* basePointer,
const int length) { const uint32_t length) {
return loadInternal(NULL, basePointer, length); return loadInternal(NULL, basePointer, length);
} }
@@ -52,7 +53,7 @@ CLD2DynamicData::FileHeader* loadHeaderFromRaw(const void* basePointer,
memcpy(&(header->field), (((char*)(basePointer)) + bytesRead), 4);\ memcpy(&(header->field), (((char*)(basePointer)) + bytesRead), 4);\
bytesRead += 4;\ bytesRead += 4;\
} }
CLD2DynamicData::FileHeader* loadInternal(FILE* inFile, const void* basePointer, const int length) { CLD2DynamicData::FileHeader* loadInternal(FILE* inFile, const void* basePointer, const uint32_t length) {
const bool sourceIsFile = (inFile != NULL); const bool sourceIsFile = (inFile != NULL);
int bytesRead = 0; int bytesRead = 0;
CLD2DynamicData::FileHeader* header = new CLD2DynamicData::FileHeader; CLD2DynamicData::FileHeader* header = new CLD2DynamicData::FileHeader;
@@ -140,7 +141,7 @@ CLD2DynamicData::FileHeader* loadInternal(FILE* inFile, const void* basePointer,
} }
void unloadDataFile(CLD2::ScoringTables** scoringTables, void unloadDataFile(CLD2::ScoringTables** scoringTables,
void** mmapAddress, int* mmapLength) { void** mmapAddress, uint32_t* mmapLength) {
CLD2DynamicDataLoader::unloadDataRaw(scoringTables); CLD2DynamicDataLoader::unloadDataRaw(scoringTables);
munmap(*mmapAddress, *mmapLength); munmap(*mmapAddress, *mmapLength);
*mmapAddress = NULL; *mmapAddress = NULL;
@@ -157,7 +158,7 @@ void unloadDataRaw(CLD2::ScoringTables** scoringTables) {
} }
CLD2::ScoringTables* loadDataFile(const char* fileName, CLD2::ScoringTables* loadDataFile(const char* fileName,
void** mmapAddressOut, int* mmapLengthOut) { void** mmapAddressOut, uint32_t* mmapLengthOut) {
CLD2DynamicData::FileHeader* header = loadHeaderFromFile(fileName); CLD2DynamicData::FileHeader* header = loadHeaderFromFile(fileName);
if (header == NULL) { if (header == NULL) {
return NULL; return NULL;
@@ -175,12 +176,12 @@ CLD2::ScoringTables* loadDataFile(const char* fileName,
return loadDataInternal(header, mapped, header->totalFileSizeBytes); return loadDataInternal(header, mapped, header->totalFileSizeBytes);
} }
CLD2::ScoringTables* loadDataRaw(const void* basePointer, const int length) { CLD2::ScoringTables* loadDataRaw(const void* basePointer, const uint32_t length) {
CLD2DynamicData::FileHeader* header = loadHeaderFromRaw(basePointer, length); CLD2DynamicData::FileHeader* header = loadHeaderFromRaw(basePointer, length);
return loadDataInternal(header, basePointer, length); return loadDataInternal(header, basePointer, length);
} }
CLD2::ScoringTables* loadDataInternal(CLD2DynamicData::FileHeader* header, const void* basePointer, const int length) { CLD2::ScoringTables* loadDataInternal(CLD2DynamicData::FileHeader* header, const void* basePointer, const uint32_t length) {
// 1. UTF8 Object // 1. UTF8 Object
const CLD2::uint8* state_table = static_cast<const CLD2::uint8*>(basePointer) + const CLD2::uint8* state_table = static_cast<const CLD2::uint8*>(basePointer) +
header->startOf_utf8PropObj_state_table; header->startOf_utf8PropObj_state_table;

View File

@@ -15,6 +15,7 @@
#ifndef CLD2_INTERNAL_CLD2_DYNAMIC_DATA_LOADER_H_ #ifndef CLD2_INTERNAL_CLD2_DYNAMIC_DATA_LOADER_H_
#define CLD2_INTERNAL_CLD2_DYNAMIC_DATA_LOADER_H_ #define CLD2_INTERNAL_CLD2_DYNAMIC_DATA_LOADER_H_
#include <stdint.h>
#include "scoreonescriptspan.h" #include "scoreonescriptspan.h"
#include "cld2_dynamic_data.h" #include "cld2_dynamic_data.h"
@@ -29,11 +30,11 @@ CLD2DynamicData::FileHeader* loadHeaderFromFile(const char* fileName);
// The header returned is dynamically allocated; you must 'delete' the array // The header returned is dynamically allocated; you must 'delete' the array
// of TableHeaders as well as the returned FileHeader* when done. // of TableHeaders as well as the returned FileHeader* when done.
CLD2DynamicData::FileHeader* loadHeaderFromRaw( CLD2DynamicData::FileHeader* loadHeaderFromRaw(
const void* basePointer, const int length); const void* basePointer, const uint32_t length);
// Not for public consumption. // Not for public consumption.
CLD2DynamicData::FileHeader* loadInternal( CLD2DynamicData::FileHeader* loadInternal(
FILE* inFile, const void* basePointer, const int length); FILE* inFile, const void* basePointer, const uint32_t length);
// Load data directly into a ScoringTables structure using a private, read-only // Load data directly into a ScoringTables structure using a private, read-only
// mmap and return the newly-allocated structure. // mmap and return the newly-allocated structure.
@@ -44,16 +45,16 @@ CLD2DynamicData::FileHeader* loadInternal(
// It is up to the caller to delete the data at a later time using // It is up to the caller to delete the data at a later time using
// unloadData(...). // unloadData(...).
CLD2::ScoringTables* loadDataFile(const char* fileName, CLD2::ScoringTables* loadDataFile(const char* fileName,
void** mmapAddressOut, int* mmapLengthOut); void** mmapAddressOut, uint32_t* mmapLengthOut);
// Load data directly into a ScoringTables structure from an arbitrary region // Load data directly into a ScoringTables structure from an arbitrary region
// of memory, which is assumed to be a pointer to an mmap-ed region of memory // of memory, which is assumed to be a pointer to an mmap-ed region of memory
// backed by a valid data file that could alternatively be read (if access // backed by a valid data file that could alternatively be read (if access
// were allowed or desired) using loadDataFile(...). // were allowed or desired) using loadDataFile(...).
CLD2::ScoringTables* loadDataRaw(const void* basePointer, const int length); CLD2::ScoringTables* loadDataRaw(const void* basePointer, const uint32_t length);
// Not for public consumption. // Not for public consumption.
CLD2::ScoringTables* loadDataInternal(CLD2DynamicData::FileHeader* header, const void* basePointer, const int length); CLD2::ScoringTables* loadDataInternal(CLD2DynamicData::FileHeader* header, const void* basePointer, const uint32_t length);
// Given pointers to the data from a previous invocation of loadDataFile, // Given pointers to the data from a previous invocation of loadDataFile,
// unloads the data safely - freeing and deleting any malloc'd/new'd objects. // unloads the data safely - freeing and deleting any malloc'd/new'd objects.
@@ -66,7 +67,7 @@ CLD2::ScoringTables* loadDataInternal(CLD2DynamicData::FileHeader* header, const
// is an unfortunate mixture of new and malloc involved in building the // is an unfortunate mixture of new and malloc involved in building the
// in-memory represtation of the data. // in-memory represtation of the data.
void unloadDataFile(CLD2::ScoringTables** scoringTables, void unloadDataFile(CLD2::ScoringTables** scoringTables,
void** mmapAddress, int* mmapLength); void** mmapAddress, uint32_t* mmapLength);
// Given a pointer to the data from a previous invocation of loadDataRaw, // Given a pointer to the data from a previous invocation of loadDataRaw,
// unloads the data safely just like unloadDataFile does. This method doesn't // unloads the data safely just like unloadDataFile does. This method doesn't

View File

@@ -162,7 +162,7 @@ Usage:\n\
if (mode == 1 || mode == 2) { // dump || verify (so perform verification) if (mode == 1 || mode == 2) { // dump || verify (so perform verification)
void* mmapAddress = NULL; void* mmapAddress = NULL;
int mmapLength = 0; uint32_t mmapLength = 0;
CLD2::ScoringTables* loadedData = CLD2DynamicDataLoader::loadDataFile(fileName, &mmapAddress, &mmapLength); CLD2::ScoringTables* loadedData = CLD2DynamicDataLoader::loadDataFile(fileName, &mmapAddress, &mmapLength);
if (loadedData == NULL) { if (loadedData == NULL) {

View File

@@ -17,6 +17,7 @@
// Updated 2014.01 for dual table lookup // Updated 2014.01 for dual table lookup
// //
#include <stdint.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <string> #include <string>
@@ -88,7 +89,7 @@ extern const short kAvgDeltaOctaScore[];
static bool dataSourceIsFile = false; static bool dataSourceIsFile = false;
static ScoringTables* dynamicTables = NULL; static ScoringTables* dynamicTables = NULL;
static void* mmapAddress = NULL; static void* mmapAddress = NULL;
static int mmapLength = 0; static uint32_t mmapLength = 0;
bool isDataLoaded() { return dynamicDataLoaded; } bool isDataLoaded() { return dynamicDataLoaded; }
@@ -102,7 +103,7 @@ extern const short kAvgDeltaOctaScore[];
dynamicDataLoaded = true; dynamicDataLoaded = true;
}; };
void loadDataFromRawAddress(const void* rawAddress, const int length) { void loadDataFromRawAddress(const void* rawAddress, const uint32_t length) {
if (isDataLoaded()) { if (isDataLoaded()) {
unloadData(); unloadData();
} }

View File

@@ -63,6 +63,7 @@
#ifndef I18N_ENCODINGS_CLD2_PUBLIC_COMPACT_LANG_DET_H_ #ifndef I18N_ENCODINGS_CLD2_PUBLIC_COMPACT_LANG_DET_H_
#define I18N_ENCODINGS_CLD2_PUBLIC_COMPACT_LANG_DET_H_ #define I18N_ENCODINGS_CLD2_PUBLIC_COMPACT_LANG_DET_H_
#include <stdint.h>
#include <vector> #include <vector>
#include "../internal/lang_script.h" // For Language #include "../internal/lang_script.h" // For Language
@@ -318,7 +319,7 @@ void loadDataFromFile(const char* fileName);
// in from the specified location again (even if it has not changed). // in from the specified location again (even if it has not changed).
// WARNING: Before calling one of the provided "loadData" methods, language // WARNING: Before calling one of the provided "loadData" methods, language
// detection will always fail and will always return the unknown language. // detection will always fail and will always return the unknown language.
void loadDataFromRawAddress(const void* rawAddress, const int length); void loadDataFromRawAddress(const void* rawAddress, const uint32_t length);
// If compiled with dynamic mode, unload the data that was previously loaded // If compiled with dynamic mode, unload the data that was previously loaded
// via loadDataFromFile() or loadDataFromRawAddress(). // via loadDataFromFile() or loadDataFromRawAddress().