@@ -209,15 +209,27 @@ function set_edge_metadata!(g::DGraph, meta)
209
209
# being careful not to transfer `meta` itself, which may be large
210
210
for part in 1 : nparts (g)
211
211
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
214
222
with_state (g, set_edge_metadata!, part, part_submeta, back_submeta)
215
223
end
216
224
end
217
225
function set_edge_metadata! (g:: DGraphState , part:: Integer , part_submeta, back_submeta)
218
226
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
221
233
return
222
234
end
223
235
partition_vertex_metadata (meta, part_nv) = error (" Must define `partition_vertex_metadata` for `$(typeof (meta)) `" )
@@ -236,19 +248,16 @@ end
236
248
get_partition_vertex_metadata (g:: DGraph , part:: Integer ) =
237
249
fetch (with_state (g, get_partition_vertex_metadata, part))
238
250
function get_partition_vertex_metadata (g:: DGraphState , part:: Integer )
239
- check_not_frozen (g)
240
251
return g. parts_v_meta[part]
241
252
end
242
253
get_partition_edge_metadata (g:: DGraph , part:: Integer ) =
243
254
fetch (with_state (g, get_partition_edge_metadata, part))
244
255
function get_partition_edge_metadata (g:: DGraphState , part:: Integer )
245
- check_not_frozen (g)
246
256
return g. parts_e_meta[part]
247
257
end
248
258
get_background_edge_metadata (g:: DGraph , part:: Integer ) =
249
259
fetch (with_state (g, get_background_edge_metadata, part))
250
260
function get_background_edge_metadata (g:: DGraphState , part:: Integer )
251
- check_not_frozen (g)
252
261
return g. bg_adjs_e_meta[part]
253
262
end
254
263
copymeta (x) = x
0 commit comments