Skip to content

Commit f8704e4

Browse files
fcneufjengelh
authored andcommitted
midb: constify a few proptag arrays
1 parent 6e2ba56 commit f8704e4

File tree

1 file changed

+32
-66
lines changed

1 file changed

+32
-66
lines changed

exch/midb/mail_engine.cpp

Lines changed: 32 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1800,9 +1800,7 @@ static BOOL mail_engine_sync_mailbox(IDB_ITEM *pidb,
18001800
uint64_t parent_fid;
18011801
uint64_t commit_max;
18021802
char sql_string[1280];
1803-
PROPTAG_ARRAY proptags;
18041803
char encoded_name[1024];
1805-
uint32_t proptag_buff[6];
18061804

18071805
dir = common_util_get_maildir();
18081806
mlog(LV_NOTICE, "Running sync_mailbox for %s", dir);
@@ -1814,14 +1812,11 @@ static BOOL mail_engine_sync_mailbox(IDB_ITEM *pidb,
18141812
NULL, TABLE_FLAG_DEPTH|TABLE_FLAG_NONOTIFICATIONS,
18151813
NULL, &table_id, &row_count))
18161814
return FALSE;
1817-
proptags.count = 6;
1818-
proptags.pproptag = proptag_buff;
1819-
proptag_buff[0] = PidTagFolderId;
1820-
proptag_buff[1] = PidTagParentFolderId;
1821-
proptag_buff[2] = PR_ATTR_HIDDEN;
1822-
proptag_buff[3] = PR_CONTAINER_CLASS;
1823-
proptag_buff[4] = PR_DISPLAY_NAME;
1824-
proptag_buff[5] = PR_LOCAL_COMMIT_TIME_MAX;
1815+
1816+
static constexpr proptag_t proptag_buff[] =
1817+
{PidTagFolderId, PidTagParentFolderId, PR_ATTR_HIDDEN,
1818+
PR_CONTAINER_CLASS, PR_DISPLAY_NAME, PR_LOCAL_COMMIT_TIME_MAX};
1819+
static constexpr PROPTAG_ARRAY proptags = {std::size(proptag_buff), deconst(proptag_buff)};
18251820
if (!exmdb_client::query_table(dir, NULL,
18261821
CP_ACP, table_id, &proptags, 0, row_count, &rows)) {
18271822
exmdb_client::unload_table(dir, table_id);
@@ -2222,14 +2217,10 @@ static void *midbme_scanwork(void *param)
22222217
static int mail_engine_mckfl(int argc, char **argv, int sockd)
22232218
{
22242219
uint64_t quota;
2225-
PROPTAG_ARRAY proptags;
2220+
static constexpr proptag_t tmp_proptags[] = {PR_PROHIBIT_RECEIVE_QUOTA, PR_MESSAGE_SIZE_EXTENDED};
2221+
static constexpr PROPTAG_ARRAY proptags = {std::size(tmp_proptags), deconst(tmp_proptags)};
22262222
TPROPVAL_ARRAY propvals;
2227-
uint32_t tmp_proptags[2];
22282223

2229-
proptags.count = 2;
2230-
proptags.pproptag = tmp_proptags;
2231-
tmp_proptags[0] = PR_PROHIBIT_RECEIVE_QUOTA;
2232-
tmp_proptags[1] = PR_MESSAGE_SIZE_EXTENDED;
22332224
if (!exmdb_client::get_store_properties(argv[1], CP_ACP,
22342225
&proptags, &propvals))
22352226
return MIDB_E_MDB_GETSTOREPROPS;
@@ -2673,8 +2664,6 @@ static int mail_engine_mrenf(int argc, char **argv, int sockd)
26732664
uint64_t folder_id2;
26742665
uint64_t change_num;
26752666
char temp_name[256];
2676-
uint32_t tmp_proptag;
2677-
PROPTAG_ARRAY proptags;
26782667
char decoded_name[512];
26792668
PROBLEM_ARRAY problems;
26802669
char encoded_name[1024];
@@ -2745,11 +2734,11 @@ static int mail_engine_mrenf(int argc, char **argv, int sockd)
27452734
if (errcode != ecSuccess)
27462735
return MIDB_E_MDB_PARTIAL;
27472736
}
2748-
proptags.count = 1;
2749-
proptags.pproptag = &tmp_proptag;
2750-
tmp_proptag = PR_PREDECESSOR_CHANGE_LIST;
2737+
27512738
if (!exmdb_client::allocate_cn(argv[1], &change_num))
27522739
return MIDB_E_MDB_ALLOCID;
2740+
static constexpr proptag_t tmp_proptag[] = {PR_PREDECESSOR_CHANGE_LIST};
2741+
static constexpr PROPTAG_ARRAY proptags = {std::size(tmp_proptag), deconst(tmp_proptag)};
27532742
if (!exmdb_client::get_folder_properties(argv[1], CP_ACP,
27542743
rop_util_make_eid_ex(1, folder_id), &proptags, &propvals))
27552744
return MIDB_E_MDB_GETFOLDERPROPS;
@@ -3359,9 +3348,7 @@ static int mail_engine_psflg(int argc, char **argv, int sockd)
33593348
{
33603349
uint64_t read_cn;
33613350
uint64_t message_id;
3362-
uint32_t tmp_proptag;
33633351
char sql_string[1024];
3364-
PROPTAG_ARRAY proptags;
33653352
PROBLEM_ARRAY problems;
33663353
TPROPVAL_ARRAY propvals;
33673354

@@ -3387,9 +3374,8 @@ static int mail_engine_psflg(int argc, char **argv, int sockd)
33873374
gx_sql_exec(pidb->psqlite, sql_string);
33883375
}
33893376
if (NULL != strchr(argv[4], 'U')) {
3390-
proptags.count = 1;
3391-
proptags.pproptag = &tmp_proptag;
3392-
tmp_proptag = PR_MESSAGE_FLAGS;
3377+
static constexpr proptag_t tmp_proptag[] = {PR_MESSAGE_FLAGS};
3378+
static constexpr PROPTAG_ARRAY proptags = {std::size(tmp_proptag), deconst(tmp_proptag)};
33933379
if (!exmdb_client::get_message_properties(argv[1], NULL,
33943380
CP_ACP, rop_util_make_eid_ex(1, message_id),
33953381
&proptags, &propvals) || propvals.count == 0)
@@ -3444,9 +3430,7 @@ static int mail_engine_prflg(int argc, char **argv, int sockd)
34443430
{
34453431
uint64_t read_cn;
34463432
uint64_t message_id;
3447-
uint32_t tmp_proptag;
34483433
char sql_string[1024];
3449-
PROPTAG_ARRAY proptags;
34503434
PROBLEM_ARRAY problems;
34513435
TPROPVAL_ARRAY propvals;
34523436

@@ -3472,9 +3456,8 @@ static int mail_engine_prflg(int argc, char **argv, int sockd)
34723456
gx_sql_exec(pidb->psqlite, sql_string);
34733457
}
34743458
if (NULL != strchr(argv[4], 'U')) {
3475-
proptags.count = 1;
3476-
proptags.pproptag = &tmp_proptag;
3477-
tmp_proptag = PR_MESSAGE_FLAGS;
3459+
static constexpr proptag_t tmp_proptag[] = {PR_MESSAGE_FLAGS};
3460+
static constexpr PROPTAG_ARRAY proptags = {std::size(tmp_proptag), deconst(tmp_proptag)};
34783461
if (!exmdb_client::get_message_properties(argv[1], nullptr,
34793462
CP_ACP, rop_util_make_eid_ex(1, message_id),
34803463
&proptags, &propvals) || propvals.count == 0)
@@ -3798,16 +3781,12 @@ static void mail_engine_add_notification_message(
37983781
char flags_buff[16];
37993782
char mid_string[128];
38003783
char sql_string[1024];
3801-
PROPTAG_ARRAY proptags;
38023784
TPROPVAL_ARRAY propvals;
3803-
uint32_t tmp_proptags[4];
3804-
3805-
proptags.count = 4;
3806-
proptags.pproptag = tmp_proptags;
3807-
tmp_proptags[0] = PR_MESSAGE_DELIVERY_TIME;
3808-
tmp_proptags[1] = PR_LAST_MODIFICATION_TIME;
3809-
tmp_proptags[2] = PidTagMidString;
3810-
tmp_proptags[3] = PR_MESSAGE_FLAGS;
3785+
3786+
static constexpr proptag_t tmp_proptags[] =
3787+
{PR_MESSAGE_DELIVERY_TIME, PR_LAST_MODIFICATION_TIME,
3788+
PidTagMidString, PR_MESSAGE_FLAGS};
3789+
static constexpr PROPTAG_ARRAY proptags = {std::size(tmp_proptags), deconst(tmp_proptags)};
38113790
if (!exmdb_client::get_message_properties(common_util_get_maildir(),
38123791
nullptr, CP_ACP, rop_util_make_eid_ex(1, message_id),
38133792
&proptags, &propvals))
@@ -3908,10 +3887,8 @@ static BOOL mail_engine_add_notification_folder(
39083887
{
39093888
char sql_string[1280];
39103889
char decoded_name[512];
3911-
PROPTAG_ARRAY proptags;
39123890
char encoded_name[1024];
39133891
TPROPVAL_ARRAY propvals;
3914-
uint32_t tmp_proptags[4];
39153892

39163893
if (auto x = spfid_to_name(parent_id)) {
39173894
gx_strlcpy(decoded_name, x, std::size(decoded_name));
@@ -3925,12 +3902,11 @@ static BOOL mail_engine_add_notification_folder(
39253902
decoded_name, std::size(decoded_name)))
39263903
return FALSE;
39273904
}
3928-
proptags.count = 4;
3929-
proptags.pproptag = tmp_proptags;
3930-
tmp_proptags[0] = PR_DISPLAY_NAME;
3931-
tmp_proptags[1] = PR_LOCAL_COMMIT_TIME_MAX;
3932-
tmp_proptags[2] = PR_CONTAINER_CLASS;
3933-
tmp_proptags[3] = PR_ATTR_HIDDEN;
3905+
3906+
static constexpr proptag_t tmp_proptags[] =
3907+
{PR_DISPLAY_NAME, PR_LOCAL_COMMIT_TIME_MAX, PR_CONTAINER_CLASS,
3908+
PR_ATTR_HIDDEN};
3909+
static constexpr PROPTAG_ARRAY proptags = {std::size(tmp_proptags), deconst(tmp_proptags)};
39343910
bool b_waited = false;
39353911
REQUERY_FOLDER:
39363912
if (!exmdb_client::get_folder_properties(common_util_get_maildir(), CP_ACP,
@@ -4025,10 +4001,8 @@ static void mail_engine_update_subfolders_name(IDB_ITEM *pidb,
40254001
static void mail_engine_move_notification_folder(
40264002
IDB_ITEM *pidb, uint64_t parent_id, uint64_t folder_id)
40274003
{
4028-
uint32_t tmp_proptag;
40294004
char sql_string[1280];
40304005
char decoded_name[512];
4031-
PROPTAG_ARRAY proptags;
40324006
char encoded_name[1024];
40334007
TPROPVAL_ARRAY propvals;
40344008

@@ -4057,9 +4031,8 @@ static void mail_engine_move_notification_folder(
40574031
return;
40584032
pstmt.finalize();
40594033
}
4060-
proptags.count = 1;
4061-
proptags.pproptag = &tmp_proptag;
4062-
tmp_proptag = PR_DISPLAY_NAME;
4034+
static constexpr proptag_t tmp_proptag[] = {PR_DISPLAY_NAME};
4035+
static constexpr PROPTAG_ARRAY proptags = {std::size(tmp_proptag), deconst(tmp_proptag)};
40634036
if (!exmdb_client::get_folder_properties(common_util_get_maildir(), CP_ACP,
40644037
rop_util_make_eid_ex(1, folder_id), &proptags, &propvals))
40654038
return;
@@ -4093,10 +4066,8 @@ static void mail_engine_modify_notification_folder(
40934066
IDB_ITEM *pidb, uint64_t folder_id)
40944067
{
40954068
char *pdisplayname;
4096-
uint32_t tmp_proptag;
40974069
char sql_string[1280];
40984070
char decoded_name[512];
4099-
PROPTAG_ARRAY proptags;
41004071
char encoded_name[1024];
41014072
TPROPVAL_ARRAY propvals;
41024073

@@ -4110,9 +4081,9 @@ static void mail_engine_modify_notification_folder(
41104081
decoded_name, std::size(decoded_name)))
41114082
return;
41124083
pstmt.finalize();
4113-
proptags.count = 1;
4114-
proptags.pproptag = &tmp_proptag;
4115-
tmp_proptag = PR_DISPLAY_NAME;
4084+
4085+
static constexpr proptag_t tmp_proptag[] = {PR_DISPLAY_NAME};
4086+
static constexpr PROPTAG_ARRAY proptags = {std::size(tmp_proptag), deconst(tmp_proptag)};
41164087
if (!exmdb_client::get_folder_properties(common_util_get_maildir(), CP_ACP,
41174088
rop_util_make_eid_ex(1, folder_id), &proptags, &propvals))
41184089
return;
@@ -4149,15 +4120,10 @@ static void mail_engine_modify_notification_message(
41494120
IDB_ITEM *pidb, uint64_t folder_id, uint64_t message_id)
41504121
{
41514122
char sql_string[256];
4152-
PROPTAG_ARRAY proptags;
41534123
TPROPVAL_ARRAY propvals;
4154-
uint32_t tmp_proptags[3];
4155-
4156-
proptags.count = 3;
4157-
proptags.pproptag = tmp_proptags;
4158-
tmp_proptags[0] = PR_MESSAGE_FLAGS;
4159-
tmp_proptags[1] = PR_LAST_MODIFICATION_TIME;
4160-
tmp_proptags[2] = PidTagMidString;
4124+
4125+
static constexpr proptag_t tmp_proptags[] = {PR_MESSAGE_FLAGS, PR_LAST_MODIFICATION_TIME, PidTagMidString};
4126+
static constexpr PROPTAG_ARRAY proptags = {std::size(tmp_proptags), deconst(tmp_proptags)};
41614127
if (!exmdb_client::get_message_properties(common_util_get_maildir(),
41624128
nullptr, CP_ACP, rop_util_make_eid_ex(1, message_id),
41634129
&proptags, &propvals))

0 commit comments

Comments
 (0)