Revert "Resolving memory leak issue in Reply function of AppControl"
[platform/framework/web/crosswalk-tizen.git] / common / platform_info.cc
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16
17 #include <cstdlib>
18 #include <system_info.h>
19 #include "common/platform_info.h"
20
21 namespace common {
22
23 enum _profile getProfile(void) {
24   static enum _profile profile = kPROFILE_UNKNOWN;
25
26   // This is false only for the first execution. Let's optimize it.
27   if (__builtin_expect(profile != kPROFILE_UNKNOWN, 1))
28     return profile;
29
30   char *profileName;
31   system_info_get_platform_string("http://tizen.org/feature/profile", &profileName);
32   switch (*profileName) {
33   case 'm':
34   case 'M':
35     profile = kPROFILE_MOBILE;
36     break;
37   case 'w':
38   case 'W':
39     profile = kPROFILE_WEARABLE;
40     break;
41   case 't':
42   case 'T':
43     profile = kPROFILE_TV;
44     break;
45   case 'i':
46   case 'I':
47     profile = kPROFILE_IVI;
48     break;
49   default: // common or unknown ==> ALL ARE COMMON.
50     profile = kPROFILE_COMMON;
51   }
52   free(profileName);
53
54   return profile;
55 }
56
57 } // namespace common