455
455
 
    CHECK(att1, FAIL, "H5Acreate2");
456
456
 
457
457
 
    data.string = string_att1;
458
458
 
459
459
 
    ret = H5Awrite(att1, type, &data);
460
460
 
    CHECK(ret, FAIL, "H5Awrite");
461
461
 
462
462
 
    ret = H5Aread(att1, type, &data_check);
463
463
 
    CHECK(ret, FAIL, "H5Aread");
464
464
 
465
 
-
    HDfree(data_check.string);
 
465
+
    ret = H5Dvlen_reclaim(type, dataspace, H5P_DEFAULT, &data_check);
 
466
+
    CHECK(ret, FAIL, "H5Dvlen_reclaim");
466
467
 
467
468
 
    ret = H5Aclose(att1);
468
469
 
    CHECK(ret, FAIL, "HAclose");
469
470
 
470
471
 
    ret = H5Gclose(root1);
471
472
 
    CHECK(ret, FAIL, "H5Gclose");
472
473
 
473
474
 
    ret = H5Fclose(file1);
474
475
 
    CHECK(ret, FAIL, "H5Fclose");
475
476
 
Show more
480
481
 
    CHECK(att2, FAIL, "H5Acreate2");
481
482
 
482
483
 
    data.string = string_att2;
483
484
 
484
485
 
    ret = H5Awrite(att2, type, &data);
485
486
 
    CHECK(ret, FAIL, "H5Awrite");
486
487
 
487
488
 
    ret = H5Aread(att2, type, &data_check);
488
489
 
    CHECK(ret, FAIL, "H5Aread");
489
490
 
490
 
-
    HDfree(data_check.string);
 
491
+
    ret = H5Dvlen_reclaim(type, dataspace, H5P_DEFAULT, &data_check);
 
492
+
    CHECK(ret, FAIL, "H5Dvlen_reclaim");
491
493
 
492
494
 
    ret = H5Aclose(att2);
493
495
 
    CHECK(ret, FAIL, "HAclose");
494
496
 
495
497
 
    ret = H5Gclose(root2);
496
498
 
    CHECK(ret, FAIL, "H5Gclose");
497
499
 
498
500
 
    ret = H5Tclose(type);
499
501
 
    CHECK(ret, FAIL, "H5Tclose");
500
502
 
Show more
507
509
 
    HDfree(string_att1);
508
510
 
    HDfree(string_att2);
509
511
 
    return;
510
512
 
}
511
513
 
512
514
 
513
515
 
static void test_misc2_read_attribute(const char *filename, const char *att_name)
514
516
 
{
515
517
 
    hid_t file, root, att;
516
518
 
    hid_t type;
 
519
+
    hid_t space;
517
520
 
    herr_t ret;
518
521
 
    misc2_struct data_check;
519
522
 
520
523
 
    type = misc2_create_type();
521
524
 
522
525
 
    file = H5Fopen(filename, H5F_ACC_RDONLY, H5P_DEFAULT);
523
526
 
    CHECK(file, FAIL, "H5Fopen");
524
527
 
525
528
 
    root = H5Gopen2(file, "/", H5P_DEFAULT);
526
529
 
    CHECK(root, FAIL, "H5Gopen2");
527
530
 
528
531
 
    att = H5Aopen(root, att_name, H5P_DEFAULT);
529
532
 
    CHECK(att, FAIL, "H5Aopen");
530
533
 
 
534
+
    space = H5Aget_space(att);
 
535
+
    CHECK(space, FAIL, "H5Aget_space");
 
536
+
531
537
 
    ret = H5Aread(att, type, &data_check);
532
538
 
    CHECK(ret, FAIL, "H5Aread");
533
539
 
534
 
-
    HDfree(data_check.string);
 
540
+
    ret = H5Dvlen_reclaim(type, space, H5P_DEFAULT, &data_check);
 
541
+
    CHECK(ret, FAIL, "H5Dvlen_reclaim");
 
542
+
 
543
+
    ret = H5Sclose(space);
 
544
+
    CHECK(ret, FAIL, "H5Sclose");
535
545
 
536
546
 
    ret = H5Aclose(att);
537
547
 
    CHECK(ret, FAIL, "H5Aclose");
538
548
 
539
549
 
    ret = H5Tclose(type);
540
550
 
    CHECK(ret, FAIL, "H5Tclose");
541
551
 
542
552
 
    ret = H5Gclose(root);
543
553
 
    CHECK(ret, FAIL, "H5Gclose");
544
554