Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b60b068 authored by Neil Fuller's avatar Neil Fuller
Browse files

Switch to using shared over local code for initializing ICU

A static library now exists in external/icu/android_utils.

Bug: 21730722
Change-Id: I8302b585d3c87fd1a975301ceca4ceebaccbcac9
parent 2f340651
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -11,8 +11,7 @@ endif
include $(CLEAR_VARS)

LOCAL_SRC_FILES:= \
	main_mediaserver.cpp \
	icuutils.cpp
	main_mediaserver.cpp

LOCAL_SHARED_LIBRARIES := \
	libaudioflinger \
@@ -33,6 +32,7 @@ LOCAL_SHARED_LIBRARIES := \
	libradioservice

LOCAL_STATIC_LIBRARIES := \
        libicuandroid_utils \
        libregistermsext

LOCAL_C_INCLUDES := \

media/mediaserver/IcuUtils.h

deleted100644 → 0
+0 −25
Original line number Diff line number Diff line
/*
 * Copyright (C) 2015 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef ICU_UTILS_H
#define ICU_UTILS_H

// Initializes ICU or dies trying. This must be called when the process
// is single threaded.
void initializeIcuOrDie();

#endif  // ICU_UTILS_H

media/mediaserver/icuutils.cpp

deleted100644 → 0
+0 −42
Original line number Diff line number Diff line
/*
 * Copyright (C) 2015 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "IcuUtils.h"

#include "unicode/putil.h"
#include "unicode/uclean.h"
#include "unicode/utypes.h"
#include "utils/Log.h"

#include <stdlib.h>

void initializeIcuOrDie() {
    const char* systemPathPrefix = getenv("ANDROID_ROOT");
    LOG_ALWAYS_FATAL_IF(systemPathPrefix == NULL, "ANDROID_ROOT environment variable not set");

    char buf[256];
    const int num_written = snprintf(buf, sizeof(buf), "%s/usr/icu/", systemPathPrefix);
    LOG_ALWAYS_FATAL_IF((num_written < 0 || static_cast<size_t>(num_written) >= sizeof(buf)),
            "Unable to construct ICU path.");

    u_setDataDirectory(buf);
    UErrorCode status = U_ZERO_ERROR;

    // u_setDataDirectory doesn't try doing anything with the directory we gave
    // it, so we'll have to call u_init to make sure it was successful.
    u_init(&status);
    LOG_ALWAYS_FATAL_IF(!U_SUCCESS(status), "Failed to initialize ICU %s", u_errorName(status));
}
+1 −1
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@ int main(int argc __unused, char** argv)
            prctl(PR_SET_PDEATHSIG, SIGKILL);   // if parent media.log dies before me, kill me also
            setpgid(0, 0);                      // but if I die first, don't kill my parent
        }
        initializeIcuOrDie();
        InitializeIcuOrDie();
        sp<ProcessState> proc(ProcessState::self());
        sp<IServiceManager> sm = defaultServiceManager();
        ALOGI("ServiceManager: %p", sm.get());