A method of decoding a block of video data using palette coding in a video coding system, the method comprising: receiving a bitstream including compressed data associated with a current palette coded block; determining a palette predictor for the current palette coded block, wherein the palette predictor is stored in a shared buffer used for both the palette predictor and a current palette of the current palette coded block; and parsing reuse flags for entries of the palette predictor from the bitstream indicating whether corresponding entries of the palette predictor are reused for the current palette, and decoding the reuse flags to determine which one or more entries of the palette predictor are reused for the current palette; after the reuse flags are decoded and before constructing the current palette, updating the corresponding entries of the palette predictor stored in the shared buffer according to the reuse flags to cause the one or more reused-entries to relocate to beginning positions in the shared buffer; after said updating the corresponding entries of the palette predictor and before constructing the current palette, inserting one or more signaled new entries to a position after a last relocated reused-entry in the shared buffer; after said inserting said one or more signaled new entries and before constructing the current palette, generating an updated palette predictor by discarding any entries exceeding a maximum palette predictor size; and constructing the current palette by selecting beginning N entries of the shared buffer, wherein N is an integer between 1 and the maximum palette predictor size; wherein said updating the corresponding entries of the palette predictor comprises: if a current reuse flag indicates entry reuse, rotating a current corresponding entry in the shared buffer to the position after a previous relocated reused-entry in the shared buffer or a beginning position in the shared buffer if no previous relocated reused-entry exists; and if the current reuse flag indicates no entry reuse, making no change to the shared buffer. receiving a bitstream including compressed data associated with a current palette coded block; determining a palette predictor for the current palette coded block, wherein the palette predictor is stored in a shared buffer used for both the palette predictor and a current palette of the current palette coded block; and parsing reuse flags for entries of the palette predictor from the bitstream indicating whether corresponding entries of the palette predictor are reused for the current palette, and decoding the reuse flags to determine which one or more entries of the palette predictor are reused for the current palette; after the reuse flags are decoded and before constructing the current palette, updating the corresponding entries of the palette predictor stored in the shared buffer according to the reuse flags to cause the one or more reused-entries to relocate to beginning positions in the shared buffer; after said updating the corresponding entries of the palette predictor and before constructing the current palette, inserting one or more signaled new entries to a position after a last relocated reused-entry in the shared buffer; after said inserting said one or more signaled new entries and before constructing the current palette, generating an updated palette predictor by discarding any entries exceeding a maximum palette predictor size; and constructing the current palette by selecting beginning N entries of the shared buffer, wherein N is an integer between 1 and the maximum palette predictor size; wherein said updating the corresponding entries of the palette predictor comprises: if a current reuse flag indicates entry reuse, rotating a current corresponding entry in the shared buffer to the position after a previous relocated reused-entry in the shared buffer or a beginning position in the shared buffer if no previous relocated reused-entry exists; and if the current reuse flag indicates no entry reuse, making no change to the shared buffer. if a current reuse flag indicates entry reuse, rotating a current corresponding entry in the shared buffer to the position after a previous relocated reused-entry in the shared buffer or a beginning position in the shared buffer if no previous relocated reused-entry exists; and if the current reuse flag indicates no entry reuse, making no change to the shared buffer.