anchor.diff:              case emqtt_topic:type(emqtt_topic:new(Topic)) of
                   direct ->
                       T = ensure_table_exists(MountPoint, Topic),
  -                    handle_sub_event(EvtType, T, EventVal);
  +                    handle_sub_event({MountPoint, Topic}, EvtType, T, EventVal);
                   wildcard ->
                       ignore
               end;
  
positive.code: 
  initialize_tables({MP, Topic, Val}, Parent) ->
      T = ensure_table_exists(MP, Topic, Parent),
      handle_sub_event(subscribe, T, Val),
      Parent.
  
  ensure_table_exists(MountPoint, Topic) ->
  
negative.code:     case find_cache_table({MountPoint, Topic}) of
          {ok, T} -> T;
          {error, not_found} ->
              T = ets:new(?MODULE, [public, ordered_set,
                                    {read_concurrency, true}]),
              ets:insert(?MODULE, {{MountPoint, Topic}, T}),
              case Parent == self() of
                  true ->
                      T;
                  false ->
                      true = ets:give_away(T, Parent, ?MODULE),
                      T
              end
      end.
  