@@ -205,6 +205,22 @@ static void *get_obj(const unsigned char *sha1, struct object **obj, unsigned lo
205205 return buf ;
206206}
207207
208+ static int grab_objectname (const char * name , const unsigned char * sha1 ,
209+ struct atom_value * v )
210+ {
211+ if (!strcmp (name , "objectname" )) {
212+ char * s = xmalloc (41 );
213+ strcpy (s , sha1_to_hex (sha1 ));
214+ v -> s = s ;
215+ return 1 ;
216+ }
217+ if (!strcmp (name , "objectname:short" )) {
218+ v -> s = xstrdup (find_unique_abbrev (sha1 , DEFAULT_ABBREV ));
219+ return 1 ;
220+ }
221+ return 0 ;
222+ }
223+
208224/* See grab_values */
209225static void grab_common_values (struct atom_value * val , int deref , struct object * obj , void * buf , unsigned long sz )
210226{
@@ -225,15 +241,8 @@ static void grab_common_values(struct atom_value *val, int deref, struct object
225241 v -> ul = sz ;
226242 v -> s = s ;
227243 }
228- else if (!strcmp (name , "objectname" )) {
229- char * s = xmalloc (41 );
230- strcpy (s , sha1_to_hex (obj -> sha1 ));
231- v -> s = s ;
232- }
233- else if (!strcmp (name , "objectname:short" )) {
234- v -> s = xstrdup (find_unique_abbrev (obj -> sha1 ,
235- DEFAULT_ABBREV ));
236- }
244+ else if (deref )
245+ grab_objectname (name , obj -> sha1 , v );
237246 }
238247}
239248
@@ -676,6 +685,8 @@ static void populate_value(struct refinfo *ref)
676685 }
677686 continue ;
678687 }
688+ else if (!deref && grab_objectname (name , ref -> objectname , v ))
689+ continue ;
679690 else
680691 continue ;
681692
0 commit comments