[subset-plan] Simplify layout_scripts allocation
diff --git a/src/hb-ot-layout-common.hh b/src/hb-ot-layout-common.hh
index af66d6d..d756bce 100644
--- a/src/hb-ot-layout-common.hh
+++ b/src/hb-ot-layout-common.hh
@@ -1145,7 +1145,7 @@
   {
     TRACE_SUBSET (this);
     if (!l->visitScript ()) return_trace (false);
-    if (tag && !c->plan->layout_scripts->has (*tag))
+    if (tag && !c->plan->layout_scripts.has (*tag))
       return false;
 
     auto *out = c->serializer->start_embed (*this);
diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc
index 9ddd7f7..0ea120d 100644
--- a/src/hb-subset-plan.cc
+++ b/src/hb-subset-plan.cc
@@ -145,7 +145,7 @@
   hb_vector_t<hb_tag_t> scripts;
   if (!plan->check_success (scripts.resize (num_scripts))) return;
   table.get_script_tags (0, &num_scripts, scripts.arrayZ);
-  bool retain_all_scripts = !_filter_tag_list (&scripts, plan->layout_scripts);
+  bool retain_all_scripts = !_filter_tag_list (&scripts, &plan->layout_scripts);
 
   if (!plan->check_success (!features.in_error ()) || !features
       || !plan->check_success (!scripts.in_error ()) || !scripts)
@@ -301,7 +301,7 @@
   _GSUBGPOS_find_duplicate_features (*table, lookups, &feature_indices, feature_substitutes_map, &duplicate_feature_map);
 
   feature_indices.clear ();
-  table->prune_langsys (&duplicate_feature_map, plan->layout_scripts, langsys_map, &feature_indices);
+  table->prune_langsys (&duplicate_feature_map, &plan->layout_scripts, langsys_map, &feature_indices);
   _remap_indexes (&feature_indices, features);
 
   table.destroy ();
@@ -845,7 +845,7 @@
   plan->name_ids = hb_set_copy (input->sets.name_ids);
   plan->name_languages = hb_set_copy (input->sets.name_languages);
   plan->layout_features = hb_set_copy (input->sets.layout_features);
-  plan->layout_scripts = hb_set_copy (input->sets.layout_scripts);
+  plan->layout_scripts = *input->sets.layout_scripts;
   plan->glyphs_requested = hb_set_copy (input->sets.glyphs);
   plan->drop_tables = hb_set_copy (input->sets.drop_tables);
   plan->no_subset_tables = hb_set_copy (input->sets.no_subset_tables);
diff --git a/src/hb-subset-plan.hh b/src/hb-subset-plan.hh
index a3cbee4..ee16172 100644
--- a/src/hb-subset-plan.hh
+++ b/src/hb-subset-plan.hh
@@ -52,7 +52,6 @@
     hb_set_destroy (name_ids);
     hb_set_destroy (name_languages);
     hb_set_destroy (layout_features);
-    hb_set_destroy (layout_scripts);
     hb_set_destroy (glyphs_requested);
     hb_set_destroy (drop_tables);
     hb_set_destroy (no_subset_tables);
@@ -127,7 +126,7 @@
   hb_set_t *layout_features;
 
   // layout scripts which will be preserved.
-  hb_set_t *layout_scripts;
+  hb_set_t layout_scripts;
 
   //glyph ids requested to retain
   hb_set_t *glyphs_requested;