@@ -209,15 +209,27 @@ function set_edge_metadata!(g::DGraph, meta)
209209 # being careful not to transfer `meta` itself, which may be large
210210 for part in 1 : nparts (g)
211211 part_edges, back_edges = partition_edges (g, part)
212- part_submeta = partition_edge_metadata (meta, part_edges)
213- back_submeta = partition_edge_metadata (meta, back_edges)
212+ if length (part_edges) > 0
213+ part_submeta = partition_edge_metadata (meta, part_edges)
214+ else
215+ part_submeta = nothing
216+ end
217+ if length (back_edges) > 0
218+ back_submeta = partition_edge_metadata (meta, back_edges)
219+ else
220+ back_submeta = nothing
221+ end
214222 with_state (g, set_edge_metadata!, part, part_submeta, back_submeta)
215223 end
216224end
217225function set_edge_metadata! (g:: DGraphState , part:: Integer , part_submeta, back_submeta)
218226 check_not_frozen (g)
219- g. parts_e_meta[part] = Dagger. tochunk (part_submeta)
220- g. bg_adjs_e_meta[part] = Dagger. tochunk (back_submeta)
227+ if part_submeta != = nothing
228+ g. parts_e_meta[part] = Dagger. tochunk (part_submeta)
229+ end
230+ if back_submeta != = nothing
231+ g. bg_adjs_e_meta[part] = Dagger. tochunk (back_submeta)
232+ end
221233 return
222234end
223235partition_vertex_metadata (meta, part_nv) = error (" Must define `partition_vertex_metadata` for `$(typeof (meta)) `" )
@@ -236,19 +248,16 @@ end
236248get_partition_vertex_metadata (g:: DGraph , part:: Integer ) =
237249 fetch (with_state (g, get_partition_vertex_metadata, part))
238250function get_partition_vertex_metadata (g:: DGraphState , part:: Integer )
239- check_not_frozen (g)
240251 return g. parts_v_meta[part]
241252end
242253get_partition_edge_metadata (g:: DGraph , part:: Integer ) =
243254 fetch (with_state (g, get_partition_edge_metadata, part))
244255function get_partition_edge_metadata (g:: DGraphState , part:: Integer )
245- check_not_frozen (g)
246256 return g. parts_e_meta[part]
247257end
248258get_background_edge_metadata (g:: DGraph , part:: Integer ) =
249259 fetch (with_state (g, get_background_edge_metadata, part))
250260function get_background_edge_metadata (g:: DGraphState , part:: Integer )
251- check_not_frozen (g)
252261 return g. bg_adjs_e_meta[part]
253262end
254263copymeta (x) = x
0 commit comments