Allow xf86DuplicateMode() to work correctly on read-only modes.
Before this it was meaningless to try to mark DisplayModeRec tables const, since the mode name would be emitted as a pointer to an anonymous string constant, and therefore would have to be fixed up by ld.so and so couldn't live in .rodata. With this change the standard mode lists can live in .rodata, and modes duplicated from them will have their names filled in on the fly.
This commit is contained in:
		
							parent
							
								
									8ac19d16a0
								
							
						
					
					
						commit
						fd41f46ac6
					
				| 
						 | 
					@ -214,10 +214,8 @@ xf86DuplicateMode(DisplayModePtr pMode)
 | 
				
			||||||
    *pNew = *pMode;
 | 
					    *pNew = *pMode;
 | 
				
			||||||
    pNew->next = NULL;
 | 
					    pNew->next = NULL;
 | 
				
			||||||
    pNew->prev = NULL;
 | 
					    pNew->prev = NULL;
 | 
				
			||||||
    if (pNew->name == NULL) {
 | 
					    if (pNew->name == NULL)
 | 
				
			||||||
	xf86SetModeDefaultName(pMode);
 | 
						xf86SetModeDefaultName(pNew);
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    pNew->name = xnfstrdup(pMode->name);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return pNew;
 | 
					    return pNew;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue