Skip to content

Commit 03f9883

Browse files
committed
Update with newer shroud-0.14.0 release candidate
Sets cmemflags in more places. Including C_null_to_error_capsule in sidre_shroud.yaml. Run 'make generate' and 'make style'. Fix memory error in sidre_group_C.cpp. It was releasing memory twice. The call to SIDRE_Group_get_data_store was reusing the SIDRE_Datastore variable which reset the ownership flag and idtor.
1 parent 14aa356 commit 03f9883

File tree

6 files changed

+33
-2
lines changed

6 files changed

+33
-2
lines changed

src/axom/sidre/interface/c_fortran/wrapDataStore.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ SIDRE_Buffer *SIDRE_DataStore_get_buffer(SIDRE_DataStore *self,
116116
{
117117
SHC_rv->addr = NULL;
118118
SHC_rv->idtor = 0;
119+
SHC_rv->cmemflags = 0;
119120
return NULL;
120121
}
121122

@@ -176,6 +177,7 @@ SIDRE_Buffer *SIDRE_DataStore_create_buffer_from_type(SIDRE_DataStore *self,
176177
{
177178
SHC_rv->addr = NULL;
178179
SHC_rv->idtor = 0;
180+
SHC_rv->cmemflags = 0;
179181
return NULL;
180182
}
181183

src/axom/sidre/interface/c_fortran/wrapGroup.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ const char *SIDRE_Group_get_path(const SIDRE_Group *self, SIDRE_SHROUD_capsule_d
103103
if(!SHC_rv_cxx->empty()) SHC_rv = SHC_rv_cxx->c_str();
104104
SHT_rv_capsule->addr = SHC_rv_cxx;
105105
SHT_rv_capsule->idtor = 1;
106+
SHT_rv_capsule->cmemflags = SWIG_MEM_RVALUE;
106107
return SHC_rv;
107108
// splicer end class.Group.method.getPath
108109
}
@@ -134,6 +135,7 @@ const char *SIDRE_Group_get_path_name(const SIDRE_Group *self,
134135
if(!SHC_rv_cxx->empty()) SHC_rv = SHC_rv_cxx->c_str();
135136
SHT_rv_capsule->addr = SHC_rv_cxx;
136137
SHT_rv_capsule->idtor = 1;
138+
SHT_rv_capsule->cmemflags = SWIG_MEM_RVALUE;
137139
return SHC_rv;
138140
// splicer end class.Group.method.getPathName
139141
}
@@ -336,6 +338,7 @@ SIDRE_View *SIDRE_Group_get_view_from_name(SIDRE_Group *self, const char *path,
336338
{
337339
SHC_rv->addr = NULL;
338340
SHC_rv->idtor = 0;
341+
SHC_rv->cmemflags = 0;
339342
return NULL;
340343
}
341344

@@ -374,6 +377,7 @@ SIDRE_View *SIDRE_Group_get_view_from_index(SIDRE_Group *self,
374377
{
375378
SHC_rv->addr = NULL;
376379
SHC_rv->idtor = 0;
380+
SHC_rv->cmemflags = 0;
377381
return NULL;
378382
}
379383

@@ -426,6 +430,7 @@ SIDRE_View *SIDRE_Group_create_view_empty(SIDRE_Group *self, const char *path, S
426430
{
427431
SHC_rv->addr = NULL;
428432
SHC_rv->idtor = 0;
433+
SHC_rv->cmemflags = 0;
429434
return NULL;
430435
}
431436

@@ -468,6 +473,7 @@ SIDRE_View *SIDRE_Group_create_view_from_type(SIDRE_Group *self,
468473
{
469474
SHC_rv->addr = NULL;
470475
SHC_rv->idtor = 0;
476+
SHC_rv->cmemflags = 0;
471477
return NULL;
472478
}
473479

@@ -515,6 +521,7 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_base(SIDRE_Group *self,
515521
{
516522
SHC_rv->addr = NULL;
517523
SHC_rv->idtor = 0;
524+
SHC_rv->cmemflags = 0;
518525
return NULL;
519526
}
520527

@@ -561,6 +568,7 @@ SIDRE_View *SIDRE_Group_create_view_into_buffer(SIDRE_Group *self,
561568
{
562569
SHC_rv->addr = NULL;
563570
SHC_rv->idtor = 0;
571+
SHC_rv->cmemflags = 0;
564572
return NULL;
565573
}
566574

@@ -608,6 +616,7 @@ SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer(SIDRE_Group *self,
608616
{
609617
SHC_rv->addr = NULL;
610618
SHC_rv->idtor = 0;
619+
SHC_rv->cmemflags = 0;
611620
return NULL;
612621
}
613622

@@ -660,6 +669,7 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_and_buffer(SIDRE_Group *self,
660669
{
661670
SHC_rv->addr = NULL;
662671
SHC_rv->idtor = 0;
672+
SHC_rv->cmemflags = 0;
663673
return NULL;
664674
}
665675

@@ -707,6 +717,7 @@ SIDRE_View *SIDRE_Group_create_view_external(SIDRE_Group *self,
707717
{
708718
SHC_rv->addr = NULL;
709719
SHC_rv->idtor = 0;
720+
SHC_rv->cmemflags = 0;
710721
return NULL;
711722
}
712723

@@ -752,6 +763,7 @@ SIDRE_View *SIDRE_Group_create_view_from_type_external(SIDRE_Group *self,
752763
{
753764
SHC_rv->addr = NULL;
754765
SHC_rv->idtor = 0;
766+
SHC_rv->cmemflags = 0;
755767
return NULL;
756768
}
757769

@@ -802,6 +814,7 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_external(SIDRE_Group *self,
802814
{
803815
SHC_rv->addr = NULL;
804816
SHC_rv->idtor = 0;
817+
SHC_rv->cmemflags = 0;
805818
return NULL;
806819
}
807820

@@ -850,6 +863,7 @@ SIDRE_View *SIDRE_Group_create_view_and_allocate_nelems(SIDRE_Group *self,
850863
{
851864
SHC_rv->addr = NULL;
852865
SHC_rv->idtor = 0;
866+
SHC_rv->cmemflags = 0;
853867
return NULL;
854868
}
855869

@@ -897,6 +911,7 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_and_allocate(SIDRE_Group *self,
897911
{
898912
SHC_rv->addr = NULL;
899913
SHC_rv->idtor = 0;
914+
SHC_rv->cmemflags = 0;
900915
return NULL;
901916
}
902917

@@ -942,6 +957,7 @@ SIDRE_View *SIDRE_Group_create_view_scalar_int(SIDRE_Group *self,
942957
{
943958
SHC_rv->addr = NULL;
944959
SHC_rv->idtor = 0;
960+
SHC_rv->cmemflags = 0;
945961
return NULL;
946962
}
947963

@@ -983,6 +999,7 @@ SIDRE_View *SIDRE_Group_create_view_scalar_long(SIDRE_Group *self,
983999
{
9841000
SHC_rv->addr = NULL;
9851001
SHC_rv->idtor = 0;
1002+
SHC_rv->cmemflags = 0;
9861003
return NULL;
9871004
}
9881005

@@ -1024,6 +1041,7 @@ SIDRE_View *SIDRE_Group_create_view_scalar_float(SIDRE_Group *self,
10241041
{
10251042
SHC_rv->addr = NULL;
10261043
SHC_rv->idtor = 0;
1044+
SHC_rv->cmemflags = 0;
10271045
return NULL;
10281046
}
10291047

@@ -1065,6 +1083,7 @@ SIDRE_View *SIDRE_Group_create_view_scalar_double(SIDRE_Group *self,
10651083
{
10661084
SHC_rv->addr = NULL;
10671085
SHC_rv->idtor = 0;
1086+
SHC_rv->cmemflags = 0;
10681087
return NULL;
10691088
}
10701089

@@ -1107,6 +1126,7 @@ SIDRE_View *SIDRE_Group_create_view_string(SIDRE_Group *self,
11071126
{
11081127
SHC_rv->addr = NULL;
11091128
SHC_rv->idtor = 0;
1129+
SHC_rv->cmemflags = 0;
11101130
return NULL;
11111131
}
11121132

@@ -1351,6 +1371,7 @@ SIDRE_Group *SIDRE_Group_get_group_from_name(SIDRE_Group *self, const char *path
13511371
{
13521372
SHC_rv->addr = NULL;
13531373
SHC_rv->idtor = 0;
1374+
SHC_rv->cmemflags = 0;
13541375
return NULL;
13551376
}
13561377

@@ -1389,6 +1410,7 @@ SIDRE_Group *SIDRE_Group_get_group_from_index(SIDRE_Group *self,
13891410
{
13901411
SHC_rv->addr = NULL;
13911412
SHC_rv->idtor = 0;
1413+
SHC_rv->cmemflags = 0;
13921414
return NULL;
13931415
}
13941416

@@ -1441,6 +1463,7 @@ SIDRE_Group *SIDRE_Group_create_group(SIDRE_Group *self, const char *path, SIDRE
14411463
{
14421464
SHC_rv->addr = NULL;
14431465
SHC_rv->idtor = 0;
1466+
SHC_rv->cmemflags = 0;
14441467
return NULL;
14451468
}
14461469

src/axom/sidre/interface/c_fortran/wrapView.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ const char *SIDRE_View_get_path(const SIDRE_View *self, SIDRE_SHROUD_capsule_dat
102102
if(!SHC_rv_cxx->empty()) SHC_rv = SHC_rv_cxx->c_str();
103103
SHT_rv_capsule->addr = SHC_rv_cxx;
104104
SHT_rv_capsule->idtor = 1;
105+
SHT_rv_capsule->cmemflags = SWIG_MEM_RVALUE;
105106
return SHC_rv;
106107
// splicer end class.View.method.getPath
107108
}
@@ -132,6 +133,7 @@ const char *SIDRE_View_get_path_name(const SIDRE_View *self, SIDRE_SHROUD_capsul
132133
if(!SHC_rv_cxx->empty()) SHC_rv = SHC_rv_cxx->c_str();
133134
SHT_rv_capsule->addr = SHC_rv_cxx;
134135
SHT_rv_capsule->idtor = 1;
136+
SHT_rv_capsule->cmemflags = SWIG_MEM_RVALUE;
135137
return SHC_rv;
136138
// splicer end class.View.method.getPathName
137139
}

src/axom/sidre/interface/sidre_shroud.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -780,6 +780,7 @@ patterns:
780780
if ({cxx_var} == nullptr) {{
781781
{c_var}->addr = NULL;
782782
{c_var}->idtor = 0;
783+
{c_var}->cmemflags = 0;
783784
return NULL;
784785
}}
785786
PY_invalid_name: |

src/axom/sidre/tests/sidre_group_C.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,15 @@ TEST(C_sidre_group, get_parent)
5757
//------------------------------------------------------------------------------
5858
TEST(C_sidre_group, get_datastore)
5959
{
60-
SIDRE_DataStore ds_buf, const_ds_buf;
60+
SIDRE_DataStore ds_buf, ds_buf_group, const_ds_buf;
6161
SIDRE_Group root_buf, group_buf;
6262

6363
SIDRE_DataStore* ds = SIDRE_DataStore_new(&ds_buf);
6464
SIDRE_Group* root = SIDRE_DataStore_get_root(ds, &root_buf);
6565
SIDRE_Group* group = SIDRE_Group_create_group(root, "parent", &group_buf);
6666

67-
EXPECT_TRUE(SIDRE_Group_get_data_store(group, &ds_buf) == ds);
67+
SIDRE_Group_get_data_store(group, &ds_buf_group);
68+
EXPECT_TRUE(ds_buf.addr == ds_buf_group.addr);
6869

6970
SIDRE_DataStore const* const_ds = SIDRE_Group_get_data_store(group, &const_ds_buf);
7071
EXPECT_TRUE(const_ds->addr == ds->addr);

src/axom/slic/interface/c_fortran/wrapSLIC.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ const char *SLIC_getActiveLoggerName(SLIC_SHROUD_capsule_data *SHT_rv_capsule)
118118
if(!SHC_rv_cxx->empty()) SHC_rv = SHC_rv_cxx->c_str();
119119
SHT_rv_capsule->addr = SHC_rv_cxx;
120120
SHT_rv_capsule->idtor = 2;
121+
SHT_rv_capsule->cmemflags = SWIG_MEM_RVALUE;
121122
return SHC_rv;
122123
// splicer end function.getActiveLoggerName
123124
}
@@ -131,6 +132,7 @@ void SLIC_getActiveLoggerName_bufferify(SLIC_SHROUD_array *SHT_rv_cdesc,
131132
ShroudStringToCdesc(SHT_rv_cdesc, SHC_rv_cxx);
132133
SHT_rv_capsule->addr = SHC_rv_cxx;
133134
SHT_rv_capsule->idtor = 3;
135+
SHT_rv_capsule->cmemflags = SWIG_MEM_RVALUE;
134136
// splicer end function.getActiveLoggerName_bufferify
135137
}
136138

0 commit comments

Comments
 (0)