Skip to content

Commit 52de757

Browse files
JoonghyunChoJay Cho
andauthored
Migrate DllImport to LibraryImport in low-risk core modules (Phase 1) (#7558)
Convert DllImport declarations to LibraryImport (source-generated P/Invoke) for the following modules: - Tizen (core): Dlog, CommonError, DotnetUtil - Tizen.System.Information: RuntimeInfo, SystemInfo - Tizen.Applications: Alarm, Badge, Preference, MessagePort, EventManager, AttachPanel, ToastMessage, ThemeManager, UI - Tizen.Content.MimeType: Glib Changes: - Replace [DllImport] with [LibraryImport] and 'static extern' with 'static partial' - Add StringMarshalling = StringMarshalling.Utf8 where string parameters exist - Add [MarshalAs(UnmanagedType.U1)] for bool parameters/return values in LibraryImport - Remove CallingConvention.Cdecl (default for LibraryImport) Note: Delegate bool MarshalAs improvements are intentionally excluded from this PR and will be addressed separately. Co-authored-by: Jay Cho <chojoog@gmail.com>
1 parent 3f1af67 commit 52de757

File tree

16 files changed

+300
-288
lines changed

16 files changed

+300
-288
lines changed

src/Tizen.Applications.Alarm/Interop/Interop.Alarm.cs

Lines changed: 51 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
using System;
1818
using System.Runtime.InteropServices;
19+
using System.Runtime.InteropServices.Marshalling;
1920

2021
using Tizen.Internals;
2122
using Tizen.Applications;
@@ -42,80 +43,80 @@ internal struct DateTime
4243
internal IntPtr tm_zone;
4344
};
4445

45-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_after_delay")]
46-
internal static extern int CreateAlarmAfterDelay(SafeAppControlHandle appControl, int delay, int period, out int alarmId);
46+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_after_delay")]
47+
internal static partial int CreateAlarmAfterDelay(SafeAppControlHandle appControl, int delay, int period, out int alarmId);
4748

48-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_once_after_delay")]
49-
internal static extern int CreateAlarmOnceAfterDelay(SafeAppControlHandle appControl, int delay, out int alarmId);
49+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_once_after_delay")]
50+
internal static partial int CreateAlarmOnceAfterDelay(SafeAppControlHandle appControl, int delay, out int alarmId);
5051

51-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_once_at_date")]
52-
internal static extern int CreateAlarmOnceAtDate(SafeAppControlHandle appControl, ref DateTime date, out int alarmId);
52+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_once_at_date")]
53+
internal static partial int CreateAlarmOnceAtDate(SafeAppControlHandle appControl, ref DateTime date, out int alarmId);
5354

54-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_with_recurrence_week_flag")]
55-
internal static extern int CreateAlarmRecurWeek(SafeAppControlHandle appControl, ref DateTime date, int week, out int alarmId);
55+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_with_recurrence_week_flag")]
56+
internal static partial int CreateAlarmRecurWeek(SafeAppControlHandle appControl, ref DateTime date, int week, out int alarmId);
5657

57-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_service_with_recurrence_seconds")]
58-
internal static extern int CreateAlarmRecurForService(SafeAppControlHandle appControl, ref DateTime date, int period, out int alarmId);
58+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_service_with_recurrence_seconds")]
59+
internal static partial int CreateAlarmRecurForService(SafeAppControlHandle appControl, ref DateTime date, int period, out int alarmId);
5960

60-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_service_once_after_delay")]
61-
internal static extern int CreateAlarmOnceAfterDelayForService(SafeAppControlHandle appControl, int delay, out int alarmId);
61+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_service_once_after_delay")]
62+
internal static partial int CreateAlarmOnceAfterDelayForService(SafeAppControlHandle appControl, int delay, out int alarmId);
6263

63-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_service_once_at_date")]
64-
internal static extern int CreateAlarmOnceAtDateForService(SafeAppControlHandle appControl, ref DateTime date, out int alarmId);
64+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_service_once_at_date")]
65+
internal static partial int CreateAlarmOnceAtDateForService(SafeAppControlHandle appControl, ref DateTime date, out int alarmId);
6566

66-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_get_scheduled_recurrence_week_flag")]
67-
internal static extern int GetAlarmWeekFlag(int alarmId, out int weekFlag);
67+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_get_scheduled_recurrence_week_flag")]
68+
internal static partial int GetAlarmWeekFlag(int alarmId, out int weekFlag);
6869

69-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_cancel")]
70-
internal static extern int CancelAlarm(int alarmId);
70+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_cancel")]
71+
internal static partial int CancelAlarm(int alarmId);
7172

72-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_cancel_all")]
73-
internal static extern int CancelAllAlarms();
73+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_cancel_all")]
74+
internal static partial int CancelAllAlarms();
7475

75-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_get_scheduled_date")]
76-
internal static extern int GetAlarmScheduledDate(int alarmId, out DateTime date);
76+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_get_scheduled_date")]
77+
internal static partial int GetAlarmScheduledDate(int alarmId, out DateTime date);
7778

78-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_get_current_time")]
79-
internal static extern int GetCurrentTime(out DateTime date);
79+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_get_current_time")]
80+
internal static partial int GetCurrentTime(out DateTime date);
8081

81-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_get_app_control")]
82-
internal static extern int GetAlarmAppControl(int alarmId, out SafeAppControlHandle control);
82+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_get_app_control")]
83+
internal static partial int GetAlarmAppControl(int alarmId, out SafeAppControlHandle control);
8384

84-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_get_scheduled_period")]
85-
internal static extern int GetAlarmScheduledPeriod(int alarmId, out int period);
85+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_get_scheduled_period")]
86+
internal static partial int GetAlarmScheduledPeriod(int alarmId, out int period);
8687

87-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_set_global")]
88-
internal static extern int SetAlarmGlobalFlag(int alarmId, bool global);
88+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_set_global")]
89+
internal static partial int SetAlarmGlobalFlag(int alarmId, [MarshalAs(UnmanagedType.U1)] bool global);
8990

90-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_get_global")]
91-
internal static extern int GetAlarmGlobalFlag(int alarmId, out bool global);
91+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_get_global")]
92+
internal static partial int GetAlarmGlobalFlag(int alarmId, [MarshalAs(UnmanagedType.U1)] out bool global);
9293

93-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_foreach_registered_alarm")]
94-
internal static extern int GetAllRegisteredAlarms(RegisteredAlarmCallback callback, IntPtr userData);
94+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_foreach_registered_alarm")]
95+
internal static partial int GetAllRegisteredAlarms(RegisteredAlarmCallback callback, IntPtr userData);
9596

96-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_noti_once_at_date")]
97-
internal static extern AlarmError CreateAlarmNotiOnceAtDate(NotificationSafeHandle noti, ref DateTime date, out int alarmId);
97+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_noti_once_at_date")]
98+
internal static partial AlarmError CreateAlarmNotiOnceAtDate(NotificationSafeHandle noti, ref DateTime date, out int alarmId);
9899

99-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_noti_after_delay")]
100-
internal static extern AlarmError CreateAlarmNotiAfterDelay(NotificationSafeHandle noti, int delay, int period, out int alarmId);
100+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_noti_after_delay")]
101+
internal static partial AlarmError CreateAlarmNotiAfterDelay(NotificationSafeHandle noti, int delay, int period, out int alarmId);
101102

102-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_noti_once_after_delay")]
103-
internal static extern AlarmError CreateAlarmNotiOnceAfterDelay(NotificationSafeHandle noti, int delay, out int alarmId);
103+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_noti_once_after_delay")]
104+
internal static partial AlarmError CreateAlarmNotiOnceAfterDelay(NotificationSafeHandle noti, int delay, out int alarmId);
104105

105-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_noti_with_recurrence_week_flag")]
106-
internal static extern AlarmError CreateAlarmNotiRecurWeek(NotificationSafeHandle noti, ref DateTime date, int week, out int alarmId);
106+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_schedule_noti_with_recurrence_week_flag")]
107+
internal static partial AlarmError CreateAlarmNotiRecurWeek(NotificationSafeHandle noti, ref DateTime date, int week, out int alarmId);
107108

108-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_update_delay")]
109-
internal static extern AlarmError UpdateDelay(int alarmId, int delay);
109+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_update_delay")]
110+
internal static partial AlarmError UpdateDelay(int alarmId, int delay);
110111

111-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_update_date")]
112-
internal static extern AlarmError UpdateDate(int alarmId, ref DateTime date);
112+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_update_date")]
113+
internal static partial AlarmError UpdateDate(int alarmId, ref DateTime date);
113114

114-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_update_period")]
115-
internal static extern AlarmError UpdatePeriod(int alarmId, int period);
115+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_update_period")]
116+
internal static partial AlarmError UpdatePeriod(int alarmId, int period);
116117

117-
[DllImport(Libraries.Alarm, EntryPoint = "alarm_update_week_flag")]
118-
internal static extern AlarmError UpdateWeekFlag(int alarmId, int week);
118+
[LibraryImport(Libraries.Alarm, EntryPoint = "alarm_update_week_flag")]
119+
internal static partial AlarmError UpdateWeekFlag(int alarmId, int week);
119120

120121
//callback
121122
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Runtime.InteropServices;
3+
using System.Runtime.InteropServices.Marshalling;
34
using Tizen.Applications;
45

56
/// <summary>
@@ -30,49 +31,49 @@ internal enum ErrorCode : int
3031
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
3132
internal delegate void AttachPanelResultCallback(IntPtr attachPanel, int category, IntPtr result, int resultCode, IntPtr userData);
3233

33-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_create")]
34-
internal static extern ErrorCode CreateAttachPanel(IntPtr conform, out IntPtr attach_panel);
34+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_create")]
35+
internal static partial ErrorCode CreateAttachPanel(IntPtr conform, out IntPtr attach_panel);
3536

36-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_destroy")]
37-
internal static extern ErrorCode DestroyAttachPanel(IntPtr attach_panel);
37+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_destroy")]
38+
internal static partial ErrorCode DestroyAttachPanel(IntPtr attach_panel);
3839

39-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_add_content_category")]
40-
internal static extern ErrorCode AddCategory(IntPtr attach_panel, int content_category, IntPtr extraData);
40+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_add_content_category")]
41+
internal static partial ErrorCode AddCategory(IntPtr attach_panel, int content_category, IntPtr extraData);
4142

42-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_remove_content_category")]
43-
internal static extern ErrorCode RemoveCategory(IntPtr attach_panel, int content_category);
43+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_remove_content_category")]
44+
internal static partial ErrorCode RemoveCategory(IntPtr attach_panel, int content_category);
4445

45-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_set_extra_data")]
46-
internal static extern ErrorCode SetExtraData(IntPtr attach_panel, int content_category, IntPtr extraData);
46+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_set_extra_data")]
47+
internal static partial ErrorCode SetExtraData(IntPtr attach_panel, int content_category, IntPtr extraData);
4748

48-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_set_result_cb")]
49-
internal static extern ErrorCode SetResultCb(IntPtr attach_panel, AttachPanelResultCallback callback, IntPtr userData);
49+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_set_result_cb")]
50+
internal static partial ErrorCode SetResultCb(IntPtr attach_panel, AttachPanelResultCallback callback, IntPtr userData);
5051

51-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_unset_result_cb")]
52-
internal static extern ErrorCode UnsetResultCb(IntPtr attach_panel);
52+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_unset_result_cb")]
53+
internal static partial ErrorCode UnsetResultCb(IntPtr attach_panel);
5354

54-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_set_event_cb")]
55-
internal static extern ErrorCode SetEventCb(IntPtr attach_panel, AttachPanelEventCallback callback, IntPtr userData);
55+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_set_event_cb")]
56+
internal static partial ErrorCode SetEventCb(IntPtr attach_panel, AttachPanelEventCallback callback, IntPtr userData);
5657

57-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_unset_event_cb")]
58-
internal static extern ErrorCode UnsetEventCb(IntPtr attach_panel);
58+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_unset_event_cb")]
59+
internal static partial ErrorCode UnsetEventCb(IntPtr attach_panel);
5960

60-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_show")]
61-
internal static extern ErrorCode Show(IntPtr attach_panel);
61+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_show")]
62+
internal static partial ErrorCode Show(IntPtr attach_panel);
6263

63-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_show_without_animation")]
64-
internal static extern ErrorCode ShowWithoutAnimation(IntPtr attach_panel);
64+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_show_without_animation")]
65+
internal static partial ErrorCode ShowWithoutAnimation(IntPtr attach_panel);
6566

66-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_hide")]
67-
internal static extern ErrorCode Hide(IntPtr attach_panel);
67+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_hide")]
68+
internal static partial ErrorCode Hide(IntPtr attach_panel);
6869

69-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_hide_without_animation")]
70-
internal static extern ErrorCode HideWithoutAnimation(IntPtr attach_panel);
70+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_hide_without_animation")]
71+
internal static partial ErrorCode HideWithoutAnimation(IntPtr attach_panel);
7172

72-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_get_visibility")]
73-
internal static extern ErrorCode GetVisibility(IntPtr attach_panel, out int visible);
73+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_get_visibility")]
74+
internal static partial ErrorCode GetVisibility(IntPtr attach_panel, out int visible);
7475

75-
[DllImport(Libraries.AttachPanel, EntryPoint = "attach_panel_get_state")]
76-
internal static extern ErrorCode GetState(IntPtr attach_panel, out int state);
76+
[LibraryImport(Libraries.AttachPanel, EntryPoint = "attach_panel_get_state")]
77+
internal static partial ErrorCode GetState(IntPtr attach_panel, out int state);
7778
}
78-
}
79+
}

src/Tizen.Applications.Badge/Interop/Interop.Badge.cs

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
using System;
1818
using System.Runtime.InteropServices;
19+
using System.Runtime.InteropServices.Marshalling;
1920
using Tizen.Applications;
2021

2122
internal static partial class Interop
@@ -35,31 +36,31 @@ internal enum Action : uint
3536

3637
internal delegate void ChangedCallback(Action action, string appId, uint count, IntPtr userData);
3738

38-
[DllImport(Libraries.Badge, EntryPoint = "badge_add")]
39-
internal static extern BadgeError Add(string appId);
39+
[LibraryImport(Libraries.Badge, EntryPoint = "badge_add", StringMarshalling = StringMarshalling.Utf8)]
40+
internal static partial BadgeError Add(string appId);
4041

41-
[DllImport(Libraries.Badge, EntryPoint = "badge_remove")]
42-
internal static extern BadgeError Remove(string appId);
42+
[LibraryImport(Libraries.Badge, EntryPoint = "badge_remove", StringMarshalling = StringMarshalling.Utf8)]
43+
internal static partial BadgeError Remove(string appId);
4344

44-
[DllImport(Libraries.Badge, EntryPoint = "badge_set_count")]
45-
internal static extern BadgeError SetCount(string appId, uint count);
45+
[LibraryImport(Libraries.Badge, EntryPoint = "badge_set_count", StringMarshalling = StringMarshalling.Utf8)]
46+
internal static partial BadgeError SetCount(string appId, uint count);
4647

47-
[DllImport(Libraries.Badge, EntryPoint = "badge_get_count")]
48-
internal static extern BadgeError GetCount(string appId, out uint count);
48+
[LibraryImport(Libraries.Badge, EntryPoint = "badge_get_count", StringMarshalling = StringMarshalling.Utf8)]
49+
internal static partial BadgeError GetCount(string appId, out uint count);
4950

50-
[DllImport(Libraries.Badge, EntryPoint = "badge_set_display")]
51-
internal static extern BadgeError SetDisplay(string appId, uint isDisplay);
51+
[LibraryImport(Libraries.Badge, EntryPoint = "badge_set_display", StringMarshalling = StringMarshalling.Utf8)]
52+
internal static partial BadgeError SetDisplay(string appId, uint isDisplay);
5253

53-
[DllImport(Libraries.Badge, EntryPoint = "badge_get_display")]
54-
internal static extern BadgeError GetDisplay(string appId, out uint isDisplay);
54+
[LibraryImport(Libraries.Badge, EntryPoint = "badge_get_display", StringMarshalling = StringMarshalling.Utf8)]
55+
internal static partial BadgeError GetDisplay(string appId, out uint isDisplay);
5556

56-
[DllImport(Libraries.Badge, EntryPoint = "badge_foreach")]
57-
internal static extern BadgeError Foreach(ForeachCallback callback, IntPtr userData);
57+
[LibraryImport(Libraries.Badge, EntryPoint = "badge_foreach")]
58+
internal static partial BadgeError Foreach(ForeachCallback callback, IntPtr userData);
5859

59-
[DllImport(Libraries.Badge, EntryPoint = "badge_register_changed_cb")]
60-
internal static extern BadgeError SetChangedCallback(ChangedCallback callback, IntPtr userData);
60+
[LibraryImport(Libraries.Badge, EntryPoint = "badge_register_changed_cb")]
61+
internal static partial BadgeError SetChangedCallback(ChangedCallback callback, IntPtr userData);
6162

62-
[DllImport(Libraries.Badge, EntryPoint = "badge_unregister_changed_cb")]
63-
internal static extern BadgeError UnsetChangedCallback(ChangedCallback callback);
63+
[LibraryImport(Libraries.Badge, EntryPoint = "badge_unregister_changed_cb")]
64+
internal static partial BadgeError UnsetChangedCallback(ChangedCallback callback);
6465
}
6566
}

0 commit comments

Comments
 (0)