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

Commit cd644a3f authored by Neil Fuller's avatar Neil Fuller Committed by Android (Google) Code Review
Browse files

Merge "Switch to using shared over local code for initializing ICU" into mnc-dev

parents 71ec3dfc 4b60b068
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());