/* If we have branch cycles always annotate them. */
        if (bs && bs->nr && entries[0].flags.cycles) {
-               int i;
-
                bi = sample__resolve_bstack(sample, al);
                if (bi) {
                        struct addr_map_symbol *prev = NULL;
                         * Note that perf stores branches reversed from
                         * program order!
                         */
-                       for (i = bs->nr - 1; i >= 0; i--) {
+                       for (int i = bs->nr - 1; i >= 0; i--) {
                                addr_map_symbol__account_cycles(&bi[i].from,
                                        nonany_branch_mode ? NULL : prev,
                                        bi[i].flags.cycles);
                                if (total_cycles)
                                        *total_cycles += bi[i].flags.cycles;
                        }
+                       for (unsigned int i = 0; i < bs->nr; i++) {
+                               map__put(bi[i].to.ms.map);
+                               maps__put(bi[i].to.ms.maps);
+                               map__put(bi[i].from.ms.map);
+                               maps__put(bi[i].from.ms.maps);
+                       }
                        free(bi);
                }
        }