 
       @glyph              = @build_glyph(@mget("glyph"))
 
+      # XXX: this will be slow (see later in this file), perhaps reuse @glyph.
       @selection_glyph    = @build_glyph(@mget("selection_glyph")    or @mget("glyph"))
       @nonselection_glyph = @build_glyph(@mget("nonselection_glyph") or @mget("glyph"))
 

        logger.warn("unknown resample op: '#{resample_op}'")

    set_data: (request_render=true) ->
      t0 = Date.now()
      @all_indices = @glyph.set_data(@mget('data_source'))
      dt = Date.now() - t0
      logger.debug("#{@glyph.model.type} glyph (#{@glyph.model.id}): set_data finished in #{dt}ms")



      @glyph._map_data()

      @selection_glyph._map_data()
      @nonselection_glyph._map_data()

      # XXX: this ignores (non)selection glyphs
      if @_mask_data? and not (@plot_view.x_range instanceof FactorRange.Model) \
                      and not (@plot_view.y_range instanceof FactorRange.Model)
        indices = @_mask_data()
